home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1994-11-15 | 12.0 KB | [TEXT/MMCC] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, Tue Nov 15 05:51:08 1994, modified Tue Nov 15 05:51:08 1994, creator 'MMCC', type ASCII, 11258 bytes "ConvolveX.c" , at 0x2c7a 884 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MMCC] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0b 43 6f 6e 76 6f 6c | 76 65 58 2e 63 00 00 00 |..Convol|veX.c...|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 4d 43 | 43 00 00 00 00 00 00 00 |.TEXTMMC|C.......|
|00000050| 00 00 00 00 00 2b fa 00 | 00 03 74 aa ee 43 1c aa |.....+..|..t..C..|
|00000060| ee 43 1c 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.C......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 24 36 00 00 |........|....$6..|
|00000080| 2f 2a 20 0d 43 6f 6e 76 | 6f 6c 76 65 58 2f 59 2e |/* .Conv|olveX/Y.|
|00000090| 63 0d a9 20 31 39 38 39 | 2d 31 39 39 33 20 44 65 |c.. 1989|-1993 De|
|000000a0| 6e 69 73 20 47 2e 20 50 | 65 6c 6c 69 0d 53 69 6d |nis G. P|elli.Sim|
|000000b0| 70 6c 65 20 6f 6e 65 2d | 64 69 6d 65 6e 73 69 6f |ple one-|dimensio|
|000000c0| 6e 61 6c 20 63 6f 6e 76 | 6f 6c 75 74 69 6f 6e 2e |nal conv|olution.|
|000000d0| 20 43 6f 6e 76 6f 6c 76 | 65 20 69 6d 61 67 65 20 | Convolv|e image |
|000000e0| 69 6e 20 73 72 63 42 69 | 74 73 20 62 79 20 61 72 |in srcBi|ts by ar|
|000000f0| 72 61 79 20 66 5b 5d 20 | 74 6f 0d 70 72 6f 64 75 |ray f[] |to.produ|
|00000100| 63 65 20 69 6d 61 67 65 | 20 64 73 74 42 69 74 73 |ce image| dstBits|
|00000110| 2e 20 73 72 63 20 61 6e | 64 20 64 73 74 20 6d 61 |. src an|d dst ma|
|00000120| 79 20 68 61 76 65 20 61 | 6e 79 20 70 69 78 65 6c |y have a|ny pixel|
|00000130| 53 69 7a 65 2c 20 62 75 | 74 20 74 68 65 20 63 61 |Size, bu|t the ca|
|00000140| 6c 63 75 6c 61 74 69 6f | 6e 0d 69 74 73 65 6c 66 |lculatio|n.itself|
|00000150| 20 69 73 20 64 6f 6e 65 | 20 77 69 74 68 20 38 20 | is done| with 8 |
|00000160| 62 69 74 73 20 70 65 72 | 20 70 69 78 65 6c 2e 20 |bits per| pixel. |
|00000170| 41 73 73 75 6d 65 73 20 | 74 68 61 74 20 65 76 65 |Assumes |that eve|
|00000180| 72 79 74 68 69 6e 67 20 | 68 61 73 20 69 74 73 20 |rything |has its |
|00000190| 6f 72 69 67 69 6e 20 61 | 74 0d 69 74 73 20 63 65 |origin a|t.its ce|
|000001a0| 6e 74 65 72 2e 20 42 65 | 66 6f 72 65 20 63 61 6c |nter. Be|fore cal|
|000001b0| 6c 69 6e 67 20 43 6f 6e | 76 6f 6c 76 65 58 2f 59 |ling Con|volveX/Y|
|000001c0| 20 79 6f 75 20 73 68 6f | 75 6c 64 20 63 61 6c 6c | you sho|uld call|
|000001d0| 20 53 65 74 45 6e 74 72 | 69 65 73 28 29 20 74 6f | SetEntr|ies() to|
|000001e0| 20 73 65 74 20 75 70 0d | 74 68 65 20 63 6f 6c 6f | set up.|the colo|
|000001f0| 72 20 74 61 62 6c 65 73 | 20 61 70 70 72 6f 70 72 |r tables| appropr|
|00000200| 69 61 74 65 6c 79 20 28 | 75 6e 6c 65 73 73 20 73 |iately (|unless s|
|00000210| 6f 75 72 63 65 20 61 6e | 64 20 64 65 73 74 69 6e |ource an|d destin|
|00000220| 61 74 69 6f 6e 20 70 69 | 78 6d 61 70 73 20 61 72 |ation pi|xmaps ar|
|00000230| 65 20 62 6f 74 68 20 38 | 0d 62 69 74 73 2f 70 69 |e both 8|.bits/pi|
|00000240| 78 65 6c 2c 20 69 6e 20 | 77 68 69 63 68 20 63 61 |xel, in |which ca|
|00000250| 73 65 20 74 68 65 20 63 | 6f 6c 6f 72 20 74 61 62 |se the c|olor tab|
|00000260| 6c 65 73 20 61 72 65 20 | 69 67 6e 6f 72 65 64 29 |les are |ignored)|
|00000270| 2e 0d 0d 43 6f 6e 76 6f | 6c 76 65 58 2f 59 20 66 |...Convo|lveX/Y f|
|00000280| 69 6c 6c 73 20 65 61 63 | 68 20 70 69 78 65 6c 20 |ills eac|h pixel |
|00000290| 69 6e 20 74 68 65 20 64 | 65 73 74 69 6e 61 74 69 |in the d|estinati|
|000002a0| 6f 6e 20 77 69 74 68 20 | 61 20 77 65 69 67 68 74 |on with |a weight|
|000002b0| 65 64 20 73 75 6d 20 6f | 76 65 72 20 74 68 65 0d |ed sum o|ver the.|
|000002c0| 73 6f 75 72 63 65 2c 20 | 63 65 6e 74 65 72 65 64 |source, |centered|
|000002d0| 20 6f 6e 20 74 68 65 20 | 63 6f 72 72 65 73 70 6f | on the |correspo|
|000002e0| 6e 64 69 6e 67 20 70 69 | 78 65 6c 20 69 6e 20 74 |nding pi|xel in t|
|000002f0| 68 65 20 73 6f 75 72 63 | 65 2e 20 54 6f 20 61 76 |he sourc|e. To av|
|00000300| 6f 69 64 20 65 64 67 65 | 0d 65 66 66 65 63 74 73 |oid edge|.effects|
|00000310| 2c 20 69 74 20 6f 6e 6c | 79 20 63 6f 6d 70 75 74 |, it onl|y comput|
|00000320| 65 73 20 70 69 78 65 6c | 73 20 69 6e 20 74 68 65 |es pixel|s in the|
|00000330| 20 64 65 73 74 69 6e 61 | 74 69 6f 6e 20 77 68 69 | destina|tion whi|
|00000340| 63 68 20 68 61 76 65 20 | 66 75 6c 6c 20 73 75 70 |ch have |full sup|
|00000350| 70 6f 72 74 20 69 6e 0d | 74 68 65 20 73 6f 75 72 |port in.|the sour|
|00000360| 63 65 2e 20 49 66 20 6e | 65 63 65 73 73 61 72 79 |ce. If n|ecessary|
|00000370| 2c 20 43 6f 6e 76 6f 6c | 76 65 58 2f 59 20 77 69 |, Convol|veX/Y wi|
|00000380| 6c 6c 20 69 6e 73 65 74 | 20 74 68 65 20 73 6f 75 |ll inset| the sou|
|00000390| 72 63 65 20 6f 72 20 64 | 65 73 74 69 6e 61 74 69 |rce or d|estinati|
|000003a0| 6f 6e 20 72 65 63 74 2c | 0d 73 6f 20 74 68 61 74 |on rect,|.so that|
|000003b0| 20 74 68 65 20 64 65 73 | 74 69 6e 61 74 69 6f 6e | the des|tination|
|000003c0| 20 77 69 64 74 68 2f 68 | 65 69 67 68 74 20 70 6c | width/h|eight pl|
|000003d0| 75 73 20 74 68 65 20 61 | 72 72 61 79 20 6c 65 6e |us the a|rray len|
|000003e0| 67 74 68 20 65 71 75 61 | 6c 73 20 74 68 65 20 73 |gth equa|ls the s|
|000003f0| 6f 75 72 63 65 0d 77 69 | 64 74 68 2f 68 65 69 67 |ource.wi|dth/heig|
|00000400| 68 74 2e 0d 0d 49 74 20 | 77 6f 75 6c 64 20 62 65 |ht...It |would be|
|00000410| 20 6e 69 63 65 20 74 6f | 20 63 6f 6e 76 65 72 74 | nice to| convert|
|00000420| 20 74 68 69 73 20 74 6f | 20 75 73 65 20 47 65 74 | this to| use Get|
|00000430| 20 61 6e 64 20 53 65 74 | 50 69 78 65 6c 73 51 75 | and Set|PixelsQu|
|00000440| 69 63 6b 6c 79 20 69 6e | 73 74 65 61 64 20 6f 66 |ickly in|stead of|
|00000450| 0d 64 69 72 65 63 74 6c | 79 20 61 63 63 65 73 73 |.directl|y access|
|00000460| 69 6e 67 20 74 68 65 20 | 70 69 78 65 6c 73 2e 20 |ing the |pixels. |
|00000470| 54 68 69 73 20 77 6f 75 | 6c 64 20 69 6e 74 72 6f |This wou|ld intro|
|00000480| 64 75 63 65 20 61 20 73 | 6d 61 6c 6c 20 6f 76 65 |duce a s|mall ove|
|00000490| 72 68 65 61 64 2c 20 73 | 69 6e 63 65 20 74 68 65 |rhead, s|ince the|
|000004a0| 0d 6e 75 6d 62 65 72 73 | 20 77 6f 75 6c 64 20 62 |.numbers| would b|
|000004b0| 65 20 63 6f 70 69 65 64 | 20 69 6e 74 6f 20 61 20 |e copied| into a |
|000004c0| 6c 6f 6e 67 20 61 72 72 | 61 79 20 61 6e 64 20 66 |long arr|ay and f|
|000004d0| 72 6f 6d 20 74 68 65 6e | 63 65 20 69 6e 74 6f 20 |rom then|ce into |
|000004e0| 74 68 65 20 70 69 78 65 | 6c 73 2c 20 69 6e 73 74 |the pixe|ls, inst|
|000004f0| 65 61 64 0d 6f 66 20 62 | 65 69 6e 67 20 73 74 75 |ead.of b|eing stu|
|00000500| 66 66 65 64 20 64 69 72 | 65 63 74 6c 79 2c 20 62 |ffed dir|ectly, b|
|00000510| 75 74 20 77 6f 75 6c 64 | 20 70 72 6f 62 61 62 6c |ut would| probabl|
|00000520| 79 20 6d 61 6b 65 20 74 | 68 69 73 20 70 72 6f 67 |y make t|his prog|
|00000530| 72 61 6d 20 71 75 69 74 | 65 20 61 20 62 69 74 20 |ram quit|e a bit |
|00000540| 65 61 73 69 65 72 0d 74 | 6f 20 72 65 61 64 2e 0d |easier.t|o read..|
|00000550| 0d 42 55 47 53 3a 0d 53 | 65 74 74 69 6e 67 20 49 |.BUGS:.S|etting I|
|00000560| 4d 50 52 4f 56 45 44 5f | 52 4f 55 4e 44 49 4e 47 |MPROVED_|ROUNDING|
|00000570| 20 74 6f 20 74 72 75 65 | 20 69 6d 70 72 6f 76 65 | to true| improve|
|00000580| 73 20 72 65 73 75 6c 74 | 73 20 69 6e 20 73 6f 6d |s result|s in som|
|00000590| 65 20 61 70 70 6c 69 63 | 61 74 69 6f 6e 73 2c 20 |e applic|ations, |
|000005a0| 62 75 74 0d 73 63 72 65 | 77 73 20 75 70 20 6f 74 |but.scre|ws up ot|
|000005b0| 68 65 72 73 20 28 65 2e | 67 2e 20 74 68 65 20 64 |hers (e.|g. the d|
|000005c0| 65 6d 6f 20 46 69 6c 74 | 65 72 2e 63 29 2e 20 49 |emo Filt|er.c). I|
|000005d0| 20 64 6f 6e 27 74 20 68 | 61 76 65 20 74 69 6d 65 | don't h|ave time|
|000005e0| 20 74 6f 20 66 69 67 75 | 72 65 20 74 68 69 73 20 | to figu|re this |
|000005f0| 6f 75 74 20 61 74 20 0d | 74 68 65 20 6d 6f 6d 65 |out at .|the mome|
|00000600| 6e 74 2c 20 73 6f 20 49 | 27 6d 20 6c 65 61 76 69 |nt, so I|'m leavi|
|00000610| 6e 67 20 61 20 66 6c 61 | 67 20 74 68 61 74 20 63 |ng a fla|g that c|
|00000620| 61 6e 20 62 65 20 74 75 | 72 6e 65 64 20 6f 6e 20 |an be tu|rned on |
|00000630| 6f 72 20 6f 66 66 20 74 | 6f 20 73 75 69 74 20 79 |or off t|o suit y|
|00000640| 6f 75 72 20 0d 61 70 70 | 6c 69 63 61 74 69 6f 6e |our .app|lication|
|00000650| 2e 20 49 20 65 78 70 65 | 63 74 20 74 6f 20 66 69 |. I expe|ct to fi|
|00000660| 78 20 74 68 69 73 20 61 | 6e 64 20 65 6c 69 6d 69 |x this a|nd elimi|
|00000670| 6e 61 74 65 20 74 68 65 | 20 66 6c 61 67 20 69 6e |nate the| flag in|
|00000680| 20 74 68 65 20 66 75 74 | 75 72 65 2e 0d 0d 48 49 | the fut|ure...HI|
|00000690| 53 54 4f 52 59 3a 0d 34 | 2f 31 2f 38 39 20 64 67 |STORY:.4|/1/89 dg|
|000006a0| 70 09 74 77 69 63 65 20 | 61 73 20 66 61 73 74 2c |p.twice |as fast,|
|000006b0| 20 74 68 61 6e 6b 73 20 | 74 6f 20 72 65 63 6f 64 | thanks |to recod|
|000006c0| 69 6e 67 20 74 6f 20 75 | 73 65 20 6c 6f 6e 67 20 |ing to u|se long |
|000006d0| 69 6e 73 74 65 61 64 20 | 6f 66 20 66 6c 6f 61 74 |instead |of float|
|000006e0| 20 61 72 69 74 68 6d 65 | 74 69 63 2e 0d 34 2f 32 | arithme|tic..4/2|
|000006f0| 2f 38 39 20 64 67 70 09 | 6d 61 64 65 20 75 6e 69 |/89 dgp.|made uni|
|00000700| 76 65 72 73 61 6c 20 62 | 79 20 75 73 69 6e 67 20 |versal b|y using |
|00000710| 6c 69 6e 65 20 62 75 66 | 66 65 72 73 20 66 6f 72 |line buf|fers for|
|00000720| 20 62 6f 74 68 20 73 72 | 63 20 61 6e 64 20 64 73 | both sr|c and ds|
|00000730| 74 2c 20 61 6e 64 20 69 | 6e 74 65 72 66 61 63 69 |t, and i|nterfaci|
|00000740| 6e 67 0d 09 09 09 74 6f | 20 74 68 65 20 73 72 63 |ng....to| the src|
|00000750| 20 61 6e 64 20 64 73 74 | 20 50 69 78 4d 61 70 73 | and dst| PixMaps|
|00000760| 20 73 6f 6c 65 6c 79 20 | 74 68 72 6f 75 67 68 20 | solely |through |
|00000770| 43 6f 70 79 42 69 74 73 | 2e 0d 34 2f 32 2f 38 39 |CopyBits|..4/2/89|
|00000780| 20 64 67 70 09 43 6f 6e | 76 6f 6c 76 65 58 2f 59 | dgp.Con|volveX/Y|
|00000790| 2e 63 2c 20 61 20 70 72 | 65 2d 70 72 6f 63 65 73 |.c, a pr|e-proces|
|000007a0| 73 6f 72 20 63 6f 6e 64 | 69 74 69 6f 6e 61 6c 20 |sor cond|itional |
|000007b0| 77 61 73 20 61 64 64 65 | 64 20 74 6f 20 67 65 6e |was adde|d to gen|
|000007c0| 65 72 61 74 65 20 43 6f | 6e 76 6f 6c 76 65 58 0d |erate Co|nvolveX.|
|000007d0| 09 09 09 61 6e 64 20 43 | 6f 6e 76 6f 6c 76 65 59 |...and C|onvolveY|
|000007e0| 20 66 72 6f 6d 20 74 68 | 65 20 53 41 4d 45 20 73 | from th|e SAME s|
|000007f0| 6f 75 72 63 65 2e 20 54 | 68 65 20 74 77 6f 20 66 |ource. T|he two f|
|00000800| 69 6c 65 73 20 61 72 65 | 20 49 44 45 4e 54 49 43 |iles are| IDENTIC|
|00000810| 41 4c 20 65 78 63 65 70 | 74 0d 09 09 09 66 6f 72 |AL excep|t....for|
|00000820| 20 74 68 65 20 70 72 65 | 70 72 6f 63 65 73 73 6f | the pre|processo|
|00000830| 72 20 64 65 66 69 6e 69 | 74 69 6f 6e 20 6f 66 20 |r defini|tion of |
|00000840| 43 4f 4e 56 4f 4c 56 45 | 5f 58 20 61 73 20 31 20 |CONVOLVE|_X as 1 |
|00000850| 74 6f 20 67 65 6e 65 72 | 61 74 65 20 43 6f 6e 76 |to gener|ate Conv|
|00000860| 6f 6c 76 65 58 2c 0d 09 | 09 09 6f 72 20 30 20 74 |olveX,..|..or 0 t|
|00000870| 6f 20 67 65 6e 65 72 61 | 74 65 20 43 6f 6e 76 6f |o genera|te Convo|
|00000880| 6c 76 65 59 2e 0d 31 30 | 2f 39 2f 38 39 20 64 67 |lveY..10|/9/89 dg|
|00000890| 70 09 46 69 78 65 64 20 | 6f 76 65 72 66 6c 6f 77 |p.Fixed |overflow|
|000008a0| 20 62 75 67 2e 20 53 70 | 65 65 64 65 64 20 75 70 | bug. Sp|eeded up|
|000008b0| 20 74 68 65 20 63 6f 6e | 76 6f 6c 75 74 69 6f 6e | the con|volution|
|000008c0| 20 6c 6f 6f 70 20 73 6c | 69 67 68 74 6c 79 2e 0d | loop sl|ightly..|
|000008d0| 09 09 09 41 64 64 65 64 | 20 63 6f 6e 64 69 74 69 |...Added| conditi|
|000008e0| 6f 6e 61 6c 20 74 6f 20 | 75 73 65 20 43 6f 70 79 |onal to |use Copy|
|000008f0| 42 69 74 73 51 75 69 63 | 6b 6c 79 20 69 6e 73 74 |BitsQuic|kly inst|
|00000900| 65 61 64 20 6f 66 20 43 | 6f 70 79 42 69 74 73 20 |ead of C|opyBits |
|00000910| 77 68 65 6e 20 73 6f 75 | 72 63 65 20 61 6e 64 0d |when sou|rce and.|
|00000920| 09 09 09 64 65 73 74 69 | 6e 61 74 69 6f 6e 20 70 |...desti|nation p|
|00000930| 69 78 65 6c 53 69 7a 65 | 20 61 72 65 20 38 20 62 |ixelSize| are 8 b|
|00000940| 69 74 73 2e 20 54 68 69 | 73 20 68 61 73 20 74 77 |its. Thi|s has tw|
|00000950| 6f 20 76 69 72 74 75 65 | 73 2e 20 49 74 27 73 20 |o virtue|s. It's |
|00000960| 66 61 73 74 65 72 2c 20 | 61 6e 64 0d 09 09 09 69 |faster, |and....i|
|00000970| 74 20 62 79 70 61 73 73 | 65 73 20 74 68 65 20 43 |t bypass|es the C|
|00000980| 6f 6c 6f 72 20 4d 61 6e | 61 67 65 72 27 73 20 74 |olor Man|ager's t|
|00000990| 72 61 6e 73 66 6f 72 6d | 61 74 69 6f 6e 73 20 74 |ransform|ations t|
|000009a0| 68 72 6f 75 67 68 20 74 | 68 65 20 63 6f 6c 6f 72 |hrough t|he color|
|000009b0| 20 61 6e 64 20 69 6e 76 | 65 72 73 65 0d 09 09 09 | and inv|erse....|
|000009c0| 63 6f 6c 6f 72 20 74 61 | 62 6c 65 73 2c 20 77 68 |color ta|bles, wh|
|000009d0| 69 63 68 20 63 6f 73 74 | 73 20 74 69 6d 65 20 61 |ich cost|s time a|
|000009e0| 6e 64 20 6c 6f 73 65 73 | 20 61 63 63 75 72 61 63 |nd loses| accurac|
|000009f0| 79 2e 0d 31 30 2f 31 30 | 2f 38 39 20 64 67 70 20 |y..10/10|/89 dgp |
|00000a00| 4e 6f 77 20 75 73 65 20 | 52 65 63 74 54 6f 41 64 |Now use |RectToAd|
|00000a10| 64 72 65 73 73 20 74 6f | 20 64 65 74 65 72 6d 69 |dress to| determi|
|00000a20| 6e 65 20 74 68 65 20 70 | 69 78 65 6c 53 69 7a 65 |ne the p|ixelSize|
|00000a30| 20 6f 66 20 73 72 63 20 | 61 6e 64 20 64 73 74 2c | of src |and dst,|
|00000a40| 20 74 6f 20 64 65 61 6c | 0d 09 09 09 63 6f 72 72 | to deal|....corr|
|00000a50| 65 63 74 6c 79 20 77 69 | 74 68 20 77 69 6e 64 6f |ectly wi|th windo|
|00000a60| 77 27 73 20 70 69 78 6d | 61 70 2e 0d 37 2f 32 35 |w's pixm|ap..7/25|
|00000a70| 2f 39 31 09 64 67 70 09 | 41 64 64 65 64 20 65 78 |/91.dgp.|Added ex|
|00000a80| 70 6c 69 63 69 74 20 70 | 72 65 70 72 6f 63 65 73 |plicit p|reproces|
|00000a90| 73 6f 72 20 73 79 6d 62 | 6f 6c 20 74 6f 20 74 75 |sor symb|ol to tu|
|00000aa0| 72 6e 20 64 69 61 67 6e | 6f 73 74 69 63 20 70 72 |rn diagn|ostic pr|
|00000ab0| 69 6e 74 6f 75 74 20 6f | 6e 20 61 6e 64 20 6f 66 |intout o|n and of|
|00000ac0| 66 2e 0d 38 2f 32 34 2f | 39 31 09 64 67 70 09 4d |f..8/24/|91.dgp.M|
|00000ad0| 61 64 65 20 63 6f 6d 70 | 61 74 69 62 6c 65 20 77 |ade comp|atible w|
|00000ae0| 69 74 68 20 54 48 49 4e | 4b 20 43 20 35 2e 30 2e |ith THIN|K C 5.0.|
|00000af0| 0d 38 2f 32 37 2f 39 32 | 09 64 67 70 09 41 64 64 |.8/27/92|.dgp.Add|
|00000b00| 65 64 20 47 65 73 74 61 | 6c 74 28 29 2e 0d 31 31 |ed Gesta|lt()..11|
|00000b10| 2f 31 30 2f 39 32 20 64 | 67 70 20 4e 6f 77 20 69 |/10/92 d|gp Now i|
|00000b20| 6e 69 74 69 61 6c 69 7a | 65 20 61 6c 6c 20 66 69 |nitializ|e all fi|
|00000b30| 65 6c 64 73 20 6f 66 20 | 70 69 78 6d 61 70 2c 20 |elds of |pixmap, |
|00000b40| 65 73 70 65 63 69 61 6c | 6c 79 20 74 68 65 20 50 |especial|ly the P|
|00000b50| 4d 56 65 72 73 69 6f 6e | 2e 0d 09 09 09 49 64 65 |MVersion|.....Ide|
|00000b60| 6e 74 69 66 79 20 61 6c | 6c 20 65 72 72 6f 72 20 |ntify al|l error |
|00000b70| 6d 65 73 73 61 67 65 73 | 20 61 73 20 6f 72 69 67 |messages| as orig|
|00000b80| 69 6e 61 74 69 6e 67 20 | 66 72 6f 6d 20 68 65 72 |inating |from her|
|00000b90| 65 3a 20 43 6f 6e 76 6f | 6c 76 65 58 2f 59 2e 0d |e: Convo|lveX/Y..|
|00000ba0| 09 09 09 52 65 70 6c 61 | 63 65 64 20 63 6f 6d 70 |...Repla|ced comp|
|00000bb0| 69 6c 65 2d 74 69 6d 65 | 20 63 6f 6e 64 69 74 69 |ile-time| conditi|
|00000bc0| 6f 6e 61 6c 20 62 79 20 | 61 20 72 75 6e 2d 74 69 |onal by |a run-ti|
|00000bd0| 6d 65 20 63 6f 6e 64 69 | 74 69 6f 6e 61 6c 2c 20 |me condi|tional, |
|00000be0| 73 6f 0d 09 09 09 74 68 | 61 74 20 74 68 65 20 43 |so....th|at the C|
|00000bf0| 6f 6e 76 6f 6c 76 65 59 | 2e 63 20 66 69 6c 65 20 |onvolveY|.c file |
|00000c00| 69 73 20 6e 6f 20 6c 6f | 6e 67 65 72 20 6e 65 65 |is no lo|nger nee|
|00000c10| 64 65 64 2e 0d 31 2f 32 | 32 2f 39 33 09 64 67 70 |ded..1/2|2/93.dgp|
|00000c20| 09 53 77 61 70 4d 4d 55 | 4d 6f 64 65 28 29 2e 0d |.SwapMMU|Mode()..|
|00000c30| 32 2f 31 2f 39 33 09 64 | 67 70 20 49 6d 70 72 6f |2/1/93.d|gp Impro|
|00000c40| 76 65 64 20 72 6f 75 6e | 64 69 6e 67 2e 20 52 65 |ved roun|ding. Re|
|00000c50| 6d 6f 76 65 64 20 63 61 | 6c 6c 73 20 74 6f 20 47 |moved ca|lls to G|
|00000c60| 65 73 74 61 6c 74 2c 20 | 61 73 20 75 6e 6e 65 63 |estalt, |as unnec|
|00000c70| 65 73 73 61 72 79 20 6f | 76 65 72 68 65 61 64 2e |essary o|verhead.|
|00000c80| 0d 32 2f 37 2f 39 33 09 | 64 67 70 09 49 6e 74 72 |.2/7/93.|dgp.Intr|
|00000c90| 6f 64 75 63 65 64 20 73 | 77 69 74 63 68 20 49 4d |oduced s|witch IM|
|00000ca0| 50 52 4f 56 45 44 5f 52 | 4f 55 4e 44 49 4e 47 20 |PROVED_R|OUNDING |
|00000cb0| 74 6f 20 64 69 73 61 62 | 6c 65 20 72 6f 75 6e 64 |to disab|le round|
|00000cc0| 69 6e 67 20 66 6f 72 20 | 64 65 62 75 67 67 69 6e |ing for |debuggin|
|00000cd0| 67 2e 0d 32 2f 38 2f 39 | 33 09 64 67 70 20 46 69 |g..2/8/9|3.dgp Fi|
|00000ce0| 78 65 64 20 6f 76 65 72 | 66 6c 6f 77 20 70 72 6f |xed over|flow pro|
|00000cf0| 62 6c 65 6d 20 63 61 75 | 73 65 64 20 62 79 20 74 |blem cau|sed by t|
|00000d00| 68 65 20 6e 65 77 20 72 | 6f 75 6e 64 69 6e 67 2e |he new r|ounding.|
|00000d10| 0d 37 2f 39 2f 39 33 09 | 64 67 70 20 63 68 65 63 |.7/9/93.|dgp chec|
|00000d20| 6b 20 66 6f 72 20 33 32 | 2d 62 69 74 20 61 64 64 |k for 32|-bit add|
|00000d30| 72 65 73 73 69 6e 67 20 | 63 61 70 61 62 69 6c 69 |ressing |capabili|
|00000d40| 74 79 2e 0d 36 2f 31 38 | 2f 39 34 09 64 67 70 09 |ty..6/18|/94.dgp.|
|00000d50| 63 61 6e 33 32 20 69 73 | 20 6e 6f 77 20 63 6f 6d |can32 is| now com|
|00000d60| 70 75 74 65 64 20 62 79 | 20 63 61 6c 6c 69 6e 67 |puted by| calling|
|00000d70| 20 54 72 61 70 41 76 61 | 69 6c 61 62 6c 65 28 5f | TrapAva|ilable(_|
|00000d80| 53 77 61 70 4d 4d 55 4d | 6f 64 65 29 2c 20 77 68 |SwapMMUM|ode), wh|
|00000d90| 69 63 68 20 0d 09 09 09 | 72 65 74 75 72 6e 73 20 |ich ....|returns |
|00000da0| 74 68 65 20 63 6f 72 72 | 65 63 74 20 61 6e 73 77 |the corr|ect answ|
|00000db0| 65 72 20 65 76 65 6e 20 | 6f 6e 20 4d 61 63 73 20 |er even |on Macs |
|00000dc0| 77 69 74 68 20 64 69 72 | 74 79 20 52 4f 4d 73 2e |with dir|ty ROMs.|
|00000dd0| 0d 2a 2f 0d 23 69 6e 63 | 6c 75 64 65 20 22 56 69 |.*/.#inc|lude "Vi|
|00000de0| 64 65 6f 54 6f 6f 6c 62 | 6f 78 2e 68 22 0d 23 69 |deoToolb|ox.h".#i|
|00000df0| 6e 63 6c 75 64 65 20 3c | 6d 61 74 68 2e 68 3e 0d |nclude <|math.h>.|
|00000e00| 23 69 6e 63 6c 75 64 65 | 20 3c 54 72 61 70 73 2e |#include| <Traps.|
|00000e10| 68 3e 09 2f 2f 20 5f 53 | 77 61 70 4d 4d 55 4d 6f |h>.// _S|wapMMUMo|
|00000e20| 64 65 0d 76 6f 69 64 20 | 43 6f 6e 76 6f 6c 76 65 |de.void |Convolve|
|00000e30| 58 59 28 64 6f 75 62 6c | 65 20 66 5b 5d 2c 69 6e |XY(doubl|e f[],in|
|00000e40| 74 20 64 69 6d 2c 42 69 | 74 4d 61 70 20 2a 73 72 |t dim,Bi|tMap *sr|
|00000e50| 63 42 69 74 73 0d 09 2c | 42 69 74 4d 61 70 20 2a |cBits..,|BitMap *|
|00000e60| 64 73 74 42 69 74 73 2c | 52 65 63 74 20 2a 73 72 |dstBits,|Rect *sr|
|00000e70| 63 52 65 63 74 50 74 72 | 2c 52 65 63 74 20 2a 64 |cRectPtr|,Rect *d|
|00000e80| 73 74 52 65 63 74 50 74 | 72 2c 69 6e 74 20 63 6f |stRectPt|r,int co|
|00000e90| 6e 76 6f 6c 76 65 58 29 | 3b 0d 23 64 65 66 69 6e |nvolveX)|;.#defin|
|00000ea0| 65 20 44 49 41 47 4e 4f | 53 54 49 43 53 20 30 09 |e DIAGNO|STICS 0.|
|00000eb0| 09 2f 2f 20 74 72 75 65 | 20 6f 72 20 66 61 6c 73 |.// true| or fals|
|00000ec0| 65 0d 23 64 65 66 69 6e | 65 20 49 4d 50 52 4f 56 |e.#defin|e IMPROV|
|00000ed0| 45 44 5f 52 4f 55 4e 44 | 49 4e 47 20 31 09 2f 2f |ED_ROUND|ING 1.//|
|00000ee0| 20 74 72 75 65 20 6f 72 | 20 66 61 6c 73 65 0d 0d | true or| false..|
|00000ef0| 76 6f 69 64 20 43 6f 6e | 76 6f 6c 76 65 58 28 64 |void Con|volveX(d|
|00000f00| 6f 75 62 6c 65 20 66 5b | 5d 2c 69 6e 74 20 64 69 |ouble f[|],int di|
|00000f10| 6d 2c 42 69 74 4d 61 70 | 20 2a 73 72 63 42 69 74 |m,BitMap| *srcBit|
|00000f20| 73 0d 09 2c 42 69 74 4d | 61 70 20 2a 64 73 74 42 |s..,BitM|ap *dstB|
|00000f30| 69 74 73 2c 52 65 63 74 | 20 2a 73 72 63 52 65 63 |its,Rect| *srcRec|
|00000f40| 74 50 74 72 2c 52 65 63 | 74 20 2a 64 73 74 52 65 |tPtr,Rec|t *dstRe|
|00000f50| 63 74 50 74 72 29 0d 7b | 0d 09 43 6f 6e 76 6f 6c |ctPtr).{|..Convol|
|00000f60| 76 65 58 59 28 66 2c 64 | 69 6d 2c 73 72 63 42 69 |veXY(f,d|im,srcBi|
|00000f70| 74 73 2c 64 73 74 42 69 | 74 73 2c 73 72 63 52 65 |ts,dstBi|ts,srcRe|
|00000f80| 63 74 50 74 72 2c 64 73 | 74 52 65 63 74 50 74 72 |ctPtr,ds|tRectPtr|
|00000f90| 2c 31 29 3b 0d 7d 0d 0d | 76 6f 69 64 20 43 6f 6e |,1);.}..|void Con|
|00000fa0| 76 6f 6c 76 65 59 28 64 | 6f 75 62 6c 65 20 66 5b |volveY(d|ouble f[|
|00000fb0| 5d 2c 69 6e 74 20 64 69 | 6d 2c 42 69 74 4d 61 70 |],int di|m,BitMap|
|00000fc0| 20 2a 73 72 63 42 69 74 | 73 0d 09 2c 42 69 74 4d | *srcBit|s..,BitM|
|00000fd0| 61 70 20 2a 64 73 74 42 | 69 74 73 2c 52 65 63 74 |ap *dstB|its,Rect|
|00000fe0| 20 2a 73 72 63 52 65 63 | 74 50 74 72 2c 52 65 63 | *srcRec|tPtr,Rec|
|00000ff0| 74 20 2a 64 73 74 52 65 | 63 74 50 74 72 29 0d 7b |t *dstRe|ctPtr).{|
|00001000| 0d 09 43 6f 6e 76 6f 6c | 76 65 58 59 28 66 2c 64 |..Convol|veXY(f,d|
|00001010| 69 6d 2c 73 72 63 42 69 | 74 73 2c 64 73 74 42 69 |im,srcBi|ts,dstBi|
|00001020| 74 73 2c 73 72 63 52 65 | 63 74 50 74 72 2c 64 73 |ts,srcRe|ctPtr,ds|
|00001030| 74 52 65 63 74 50 74 72 | 2c 30 29 3b 0d 7d 0d 0d |tRectPtr|,0);.}..|
|00001040| 76 6f 69 64 20 43 6f 6e | 76 6f 6c 76 65 58 59 28 |void Con|volveXY(|
|00001050| 64 6f 75 62 6c 65 20 66 | 5b 5d 2c 69 6e 74 20 64 |double f|[],int d|
|00001060| 69 6d 2c 42 69 74 4d 61 | 70 20 2a 73 72 63 42 69 |im,BitMa|p *srcBi|
|00001070| 74 73 0d 09 2c 42 69 74 | 4d 61 70 20 2a 64 73 74 |ts..,Bit|Map *dst|
|00001080| 42 69 74 73 2c 52 65 63 | 74 20 2a 73 72 63 52 65 |Bits,Rec|t *srcRe|
|00001090| 63 74 50 74 72 2c 52 65 | 63 74 20 2a 64 73 74 52 |ctPtr,Re|ct *dstR|
|000010a0| 65 63 74 50 74 72 2c 69 | 6e 74 20 63 6f 6e 76 6f |ectPtr,i|nt convo|
|000010b0| 6c 76 65 58 29 0d 7b 0d | 09 52 65 63 74 20 6d 79 |lveX).{.|.Rect my|
|000010c0| 73 72 63 52 65 63 74 2c | 6d 79 64 73 74 52 65 63 |srcRect,|mydstRec|
|000010d0| 74 3b 0d 09 69 6e 74 20 | 64 73 74 4c 69 6e 65 73 |t;..int |dstLines|
|000010e0| 2c 73 72 63 4c 69 6e 65 | 73 2c 64 73 74 4c 65 6e |,srcLine|s,dstLen|
|000010f0| 67 74 68 2c 73 72 63 4c | 65 6e 67 74 68 3b 0d 09 |gth,srcL|ength;..|
|00001100| 69 6e 74 20 6c 69 6e 65 | 73 3b 0d 09 75 6e 73 69 |int line|s;..unsi|
|00001110| 67 6e 65 64 20 63 68 61 | 72 20 2a 64 73 74 50 74 |gned cha|r *dstPt|
|00001120| 72 3d 4e 55 4c 4c 3b 0d | 09 72 65 67 69 73 74 65 |r=NULL;.|.registe|
|00001130| 72 20 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 20 |r unsign|ed char |
|00001140| 2a 73 72 63 50 74 72 3d | 4e 55 4c 4c 3b 0d 09 72 |*srcPtr=|NULL;..r|
|00001150| 65 67 69 73 74 65 72 20 | 69 6e 74 20 69 3b 0d 09 |egister |int i;..|
|00001160| 52 65 63 74 20 64 73 74 | 52 65 63 74 2c 20 73 72 |Rect dst|Rect, sr|
|00001170| 63 52 65 63 74 3b 0d 09 | 72 65 67 69 73 74 65 72 |cRect;..|register|
|00001180| 20 6c 6f 6e 67 20 74 3b | 0d 09 72 65 67 69 73 74 | long t;|..regist|
|00001190| 65 72 20 6c 6f 6e 67 20 | 2a 69 66 75 6e 2c 20 2a |er long |*ifun, *|
|000011a0| 66 50 74 72 3b 0d 09 6c | 6f 6e 67 20 69 66 75 6e |fPtr;..l|ong ifun|
|000011b0| 53 63 61 6c 65 3b 0d 09 | 69 6e 74 20 78 2c 79 2c |Scale;..|int x,y,|
|000011c0| 73 72 63 78 2c 69 6d 69 | 6e 2c 69 6d 61 78 3b 0d |srcx,imi|n,imax;.|
|000011d0| 09 64 6f 75 62 6c 65 20 | 74 6d 61 78 3b 0d 09 50 |.double |tmax;..P|
|000011e0| 69 78 4d 61 70 20 73 72 | 63 54 6d 70 2c 64 73 74 |ixMap sr|cTmp,dst|
|000011f0| 54 6d 70 3b 09 2f 2a 20 | 6c 69 6e 65 20 62 75 66 |Tmp;./* |line buf|
|00001200| 66 65 72 73 20 2a 2f 0d | 09 23 69 66 20 44 49 41 |fers */.|.#if DIA|
|00001210| 47 4e 4f 53 54 49 43 53 | 0d 09 09 47 44 48 61 6e |GNOSTICS|...GDHan|
|00001220| 64 6c 65 20 64 65 76 69 | 63 65 3d 4e 55 4c 4c 3b |dle devi|ce=NULL;|
|00001230| 0d 09 09 64 6f 75 62 6c | 65 20 61 3b 0d 09 23 65 |...doubl|e a;..#e|
|00001240| 6e 64 69 66 0d 09 73 68 | 6f 72 74 20 73 72 63 50 |ndif..sh|ort srcP|
|00001250| 69 78 65 6c 53 69 7a 65 | 2c 64 73 74 50 69 78 65 |ixelSize|,dstPixe|
|00001260| 6c 53 69 7a 65 3b 0d 09 | 69 6e 74 20 65 72 72 6f |lSize;..|int erro|
|00001270| 72 3b 0d 09 6c 6f 6e 67 | 20 76 61 6c 75 65 3b 0d |r;..long| value;.|
|00001280| 09 63 68 61 72 20 6d 6d | 75 4d 6f 64 65 3d 74 72 |.char mm|uMode=tr|
|00001290| 75 65 33 32 62 3b 0d 09 | 42 6f 6f 6c 65 61 6e 20 |ue32b;..|Boolean |
|000012a0| 63 61 6e 33 32 3b 0d 09 | 0d 09 76 61 6c 75 65 3d |can32;..|..value=|
|000012b0| 30 3b 0d 09 65 72 72 6f | 72 3d 47 65 73 74 61 6c |0;..erro|r=Gestal|
|000012c0| 74 28 67 65 73 74 61 6c | 74 41 64 64 72 65 73 73 |t(gestal|tAddress|
|000012d0| 69 6e 67 4d 6f 64 65 41 | 74 74 72 2c 26 76 61 6c |ingModeA|ttr,&val|
|000012e0| 75 65 29 3b 0d 09 63 61 | 6e 33 32 3d 54 72 61 70 |ue);..ca|n32=Trap|
|000012f0| 41 76 61 69 6c 61 62 6c | 65 28 5f 53 77 61 70 4d |Availabl|e(_SwapM|
|00001300| 4d 55 4d 6f 64 65 29 3b | 0d 09 52 65 63 74 54 6f |MUMode);|..RectTo|
|00001310| 41 64 64 72 65 73 73 28 | 28 50 69 78 4d 61 70 20 |Address(|(PixMap |
|00001320| 2a 29 73 72 63 42 69 74 | 73 2c 73 72 63 52 65 63 |*)srcBit|s,srcRec|
|00001330| 74 50 74 72 2c 4e 55 4c | 4c 2c 26 73 72 63 50 69 |tPtr,NUL|L,&srcPi|
|00001340| 78 65 6c 53 69 7a 65 2c | 4e 55 4c 4c 29 3b 0d 09 |xelSize,|NULL);..|
|00001350| 52 65 63 74 54 6f 41 64 | 64 72 65 73 73 28 28 50 |RectToAd|dress((P|
|00001360| 69 78 4d 61 70 20 2a 29 | 64 73 74 42 69 74 73 2c |ixMap *)|dstBits,|
|00001370| 64 73 74 52 65 63 74 50 | 74 72 2c 4e 55 4c 4c 2c |dstRectP|tr,NULL,|
|00001380| 26 64 73 74 50 69 78 65 | 6c 53 69 7a 65 2c 4e 55 |&dstPixe|lSize,NU|
|00001390| 4c 4c 29 3b 0d 09 69 66 | 75 6e 20 3d 20 28 6c 6f |LL);..if|un = (lo|
|000013a0| 6e 67 20 2a 29 20 6d 61 | 6c 6c 6f 63 28 64 69 6d |ng *) ma|lloc(dim|
|000013b0| 2a 73 69 7a 65 6f 66 28 | 2a 69 66 75 6e 29 29 3b |*sizeof(|*ifun));|
|000013c0| 0d 09 69 66 28 69 66 75 | 6e 20 3d 3d 20 4e 55 4c |..if(ifu|n == NUL|
|000013d0| 4c 29 20 7b 0d 09 09 50 | 72 69 6e 74 66 45 78 69 |L) {...P|rintfExi|
|000013e0| 74 28 22 43 6f 6e 76 6f | 6c 76 65 58 2f 59 3a 20 |t("Convo|lveX/Y: |
|000013f0| 53 6f 72 72 79 2c 20 63 | 6f 75 6c 64 6e 27 74 20 |Sorry, c|ouldn't |
|00001400| 61 6c 6c 6f 63 61 74 65 | 20 65 6e 6f 75 67 68 20 |allocate| enough |
|00001410| 6d 65 6d 6f 72 79 20 66 | 6f 72 20 77 6f 72 6b 69 |memory f|or worki|
|00001420| 6e 67 20 61 72 72 61 79 | 5c 30 30 37 5c 6e 22 29 |ng array|\007\n")|
|00001430| 3b 0d 09 7d 0d 09 2f 2a | 0d 09 57 65 20 77 69 6c |;..}../*|..We wil|
|00001440| 6c 20 73 75 6d 20 69 6e | 20 61 20 6c 6f 6e 67 20 |l sum in| a long |
|00001450| 72 65 67 69 73 74 65 72 | 2e 0d 09 54 68 65 20 73 |register|...The s|
|00001460| 75 6d 20 6f 76 65 72 20 | 74 68 65 20 70 6f 69 6e |um over |the poin|
|00001470| 74 20 73 70 72 65 61 64 | 20 66 75 6e 63 74 69 6f |t spread| functio|
|00001480| 6e 20 66 5b 5d 20 77 69 | 6c 6c 20 79 69 65 6c 64 |n f[] wi|ll yield|
|00001490| 20 61 74 20 6d 6f 73 74 | 20 74 6d 61 78 2c 20 64 | at most| tmax, d|
|000014a0| 65 66 69 6e 65 64 20 62 | 65 6c 6f 77 2c 0d 09 73 |efined b|elow,..s|
|000014b0| 6f 20 77 65 20 63 61 6e | 20 73 61 66 65 6c 79 20 |o we can| safely |
|000014c0| 6d 75 6c 74 69 70 6c 79 | 20 66 5b 5d 20 62 79 20 |multiply| f[] by |
|000014d0| 4c 4f 4e 47 5f 4d 41 58 | 2f 74 6d 61 78 2c 20 77 |LONG_MAX|/tmax, w|
|000014e0| 69 74 68 6f 75 74 20 64 | 61 6e 67 65 72 20 6f 66 |ithout d|anger of|
|000014f0| 20 6f 76 65 72 66 6c 6f | 77 69 6e 67 20 74 2e 0d | overflo|wing t..|
|00001500| 09 2a 2f 0d 09 66 6f 72 | 20 28 74 6d 61 78 3d 30 |.*/..for| (tmax=0|
|00001510| 2e 30 2c 20 69 3d 30 3b | 69 3c 64 69 6d 3b 69 2b |.0, i=0;|i<dim;i+|
|00001520| 2b 29 20 74 6d 61 78 20 | 2b 3d 20 66 61 62 73 28 |+) tmax |+= fabs(|
|00001530| 66 5b 69 5d 29 3b 0d 09 | 74 6d 61 78 20 2a 3d 20 |f[i]);..|tmax *= |
|00001540| 55 43 48 41 52 5f 4d 41 | 58 2b 31 3b 09 2f 2a 20 |UCHAR_MA|X+1;./* |
|00001550| 6d 61 78 69 6d 75 6d 20 | 76 61 6c 75 65 20 66 6f |maximum |value fo|
|00001560| 72 20 61 20 70 69 78 65 | 6c 2c 20 32 35 35 2c 20 |r a pixe|l, 255, |
|00001570| 70 6c 75 73 20 31 20 66 | 6f 72 20 72 6f 75 6e 64 |plus 1 f|or round|
|00001580| 69 6e 67 20 2a 2f 0d 09 | 69 66 28 74 6d 61 78 3c |ing */..|if(tmax<|
|00001590| 31 2e 30 29 74 6d 61 78 | 3d 31 2e 30 3b 0d 09 69 |1.0)tmax|=1.0;..i|
|000015a0| 66 75 6e 53 63 61 6c 65 | 20 3d 20 4c 4f 4e 47 5f |funScale| = LONG_|
|000015b0| 4d 41 58 2f 74 6d 61 78 | 3b 0d 09 66 6f 72 20 28 |MAX/tmax|;..for (|
|000015c0| 69 3d 30 3b 69 3c 64 69 | 6d 3b 69 2b 2b 29 20 69 |i=0;i<di|m;i++) i|
|000015d0| 66 75 6e 5b 69 5d 20 3d | 20 66 5b 69 5d 2a 69 66 |fun[i] =| f[i]*if|
|000015e0| 75 6e 53 63 61 6c 65 3b | 0d 09 0d 09 23 69 66 20 |unScale;|....#if |
|000015f0| 44 49 41 47 4e 4f 53 54 | 49 43 53 0d 09 09 2f 2a |DIAGNOST|ICS.../*|
|00001600| 20 54 68 69 73 20 69 73 | 20 61 20 64 69 61 67 6e | This is| a diagn|
|00001610| 6f 73 74 69 63 20 70 72 | 69 6e 74 6f 75 74 20 74 |ostic pr|intout t|
|00001620| 6f 20 74 72 61 63 6b 20 | 64 6f 77 6e 20 6f 76 65 |o track |down ove|
|00001630| 72 66 6c 6f 77 20 70 72 | 6f 62 6c 65 6d 73 20 2a |rflow pr|oblems *|
|00001640| 2f 0d 09 09 74 20 3d 20 | 30 4c 3b 0d 09 09 61 20 |/...t = |0L;...a |
|00001650| 3d 20 30 2e 30 3b 0d 09 | 09 66 6f 72 20 28 69 3d |= 0.0;..|.for (i=|
|00001660| 30 3b 69 3c 64 69 6d 3b | 69 2b 2b 29 20 7b 0d 09 |0;i<dim;|i++) {..|
|00001670| 09 09 74 20 2b 3d 20 6c | 61 62 73 28 55 43 48 41 |..t += l|abs(UCHA|
|00001680| 52 5f 4d 41 58 2a 69 66 | 75 6e 5b 69 5d 29 3b 0d |R_MAX*if|un[i]);.|
|00001690| 09 09 09 61 20 2b 3d 20 | 66 61 62 73 28 66 5b 69 |...a += |fabs(f[i|
|000016a0| 5d 29 3b 0d 09 09 7d 0d | 09 09 64 65 76 69 63 65 |]);...}.|..device|
|000016b0| 3d 47 65 74 47 44 65 76 | 69 63 65 28 29 3b 0d 09 |=GetGDev|ice();..|
|000016c0| 09 53 65 74 47 44 65 76 | 69 63 65 28 47 65 74 4d |.SetGDev|ice(GetM|
|000016d0| 61 69 6e 44 65 76 69 63 | 65 28 29 29 3b 0d 09 09 |ainDevic|e());...|
|000016e0| 50 6d 46 6f 72 65 43 6f | 6c 6f 72 28 55 43 48 41 |PmForeCo|lor(UCHA|
|000016f0| 52 5f 4d 41 58 29 3b 0d | 09 09 50 6d 42 61 63 6b |R_MAX);.|..PmBack|
|00001700| 43 6f 6c 6f 72 28 30 29 | 3b 0d 09 09 50 72 69 6e |Color(0)|;...Prin|
|00001710| 74 66 45 78 69 74 28 22 | 61 3d 25 6c 66 2c 20 74 |tfExit("|a=%lf, t|
|00001720| 3d 25 6c 78 2c 20 69 66 | 75 6e 53 63 61 6c 65 3d |=%lx, if|unScale=|
|00001730| 25 6c 78 2c 20 74 2f 69 | 66 75 6e 53 63 61 6c 65 |%lx, t/i|funScale|
|00001740| 3d 25 6c 66 5c 6e 22 2c | 61 2c 74 2c 69 66 75 6e |=%lf\n",|a,t,ifun|
|00001750| 53 63 61 6c 65 2c 74 2a | 31 2e 30 2f 69 66 75 6e |Scale,t*|1.0/ifun|
|00001760| 53 63 61 6c 65 29 3b 0d | 09 09 53 65 74 47 44 65 |Scale);.|..SetGDe|
|00001770| 76 69 63 65 28 64 65 76 | 69 63 65 29 3b 0d 09 23 |vice(dev|ice);..#|
|00001780| 65 6e 64 69 66 0d 09 0d | 09 2f 2a 0d 09 55 6e 66 |endif...|./*..Unf|
|00001790| 6f 72 74 75 6e 61 74 65 | 6c 79 20 43 6f 70 79 42 |ortunate|ly CopyB|
|000017a0| 69 74 73 20 77 69 6c 6c | 20 63 72 61 73 68 20 69 |its will| crash i|
|000017b0| 66 20 74 68 65 20 6c 69 | 6e 65 20 62 75 66 66 65 |f the li|ne buffe|
|000017c0| 72 20 69 73 20 74 6f 6f | 20 6c 61 72 67 65 2c 20 |r is too| large, |
|000017d0| 65 2e 67 2e 0d 09 36 34 | 30 20 70 69 78 65 6c 73 |e.g...64|0 pixels|
|000017e0| 20 6c 6f 6e 67 2e 20 57 | 65 20 63 61 6e 20 6d 69 | long. W|e can mi|
|000017f0| 6e 69 6d 69 7a 65 20 74 | 68 69 73 20 70 72 6f 62 |nimize t|his prob|
|00001800| 6c 65 6d 20 62 79 20 72 | 65 64 75 63 69 6e 67 20 |lem by r|educing |
|00001810| 74 68 65 20 73 69 7a 65 | 20 6f 66 20 74 68 65 0d |the size| of the.|
|00001820| 09 73 72 63 52 65 63 74 | 20 74 6f 20 62 65 20 6e |.srcRect| to be n|
|00001830| 6f 20 6c 61 72 67 65 72 | 20 74 68 61 6e 20 6e 65 |o larger| than ne|
|00001840| 63 65 73 73 61 72 79 20 | 28 69 2e 65 2e 20 64 73 |cessary |(i.e. ds|
|00001850| 74 52 65 63 74 20 70 6c | 75 73 20 64 69 6d 29 2e |tRect pl|us dim).|
|00001860| 0d 09 2a 2f 0d 09 6d 79 | 73 72 63 52 65 63 74 20 |..*/..my|srcRect |
|00001870| 3d 20 2a 73 72 63 52 65 | 63 74 50 74 72 3b 0d 09 |= *srcRe|ctPtr;..|
|00001880| 6d 79 64 73 74 52 65 63 | 74 20 3d 20 2a 64 73 74 |mydstRec|t = *dst|
|00001890| 52 65 63 74 50 74 72 3b | 0d 09 69 66 28 63 6f 6e |RectPtr;|..if(con|
|000018a0| 76 6f 6c 76 65 58 29 7b | 0d 09 09 69 3d 6d 79 73 |volveX){|...i=mys|
|000018b0| 72 63 52 65 63 74 2e 72 | 69 67 68 74 2d 6d 79 73 |rcRect.r|ight-mys|
|000018c0| 72 63 52 65 63 74 2e 6c | 65 66 74 20 2d 20 28 64 |rcRect.l|eft - (d|
|000018d0| 69 6d 2b 6d 79 64 73 74 | 52 65 63 74 2e 72 69 67 |im+mydst|Rect.rig|
|000018e0| 68 74 2d 6d 79 64 73 74 | 52 65 63 74 2e 6c 65 66 |ht-mydst|Rect.lef|
|000018f0| 74 29 3b 0d 09 09 69 66 | 28 69 3e 30 29 49 6e 73 |t);...if|(i>0)Ins|
|00001900| 65 74 52 65 63 74 28 26 | 6d 79 73 72 63 52 65 63 |etRect(&|mysrcRec|
|00001910| 74 2c 69 2f 32 2c 30 29 | 3b 0d 09 09 69 3d 6d 79 |t,i/2,0)|;...i=my|
|00001920| 73 72 63 52 65 63 74 2e | 62 6f 74 74 6f 6d 2d 6d |srcRect.|bottom-m|
|00001930| 79 73 72 63 52 65 63 74 | 2e 74 6f 70 20 2d 20 28 |ysrcRect|.top - (|
|00001940| 6d 79 64 73 74 52 65 63 | 74 2e 62 6f 74 74 6f 6d |mydstRec|t.bottom|
|00001950| 2d 6d 79 64 73 74 52 65 | 63 74 2e 74 6f 70 29 3b |-mydstRe|ct.top);|
|00001960| 0d 09 09 69 66 28 69 3e | 30 29 49 6e 73 65 74 52 |...if(i>|0)InsetR|
|00001970| 65 63 74 28 26 6d 79 73 | 72 63 52 65 63 74 2c 30 |ect(&mys|rcRect,0|
|00001980| 2c 69 2f 32 29 3b 0d 09 | 09 69 66 28 69 3c 30 29 |,i/2);..|.if(i<0)|
|00001990| 49 6e 73 65 74 52 65 63 | 74 28 26 6d 79 64 73 74 |InsetRec|t(&mydst|
|000019a0| 52 65 63 74 2c 30 2c 2d | 69 2f 32 29 3b 0d 09 7d |Rect,0,-|i/2);..}|
|000019b0| 65 6c 73 65 7b 0d 09 09 | 69 3d 6d 79 73 72 63 52 |else{...|i=mysrcR|
|000019c0| 65 63 74 2e 72 69 67 68 | 74 2d 6d 79 73 72 63 52 |ect.righ|t-mysrcR|
|000019d0| 65 63 74 2e 6c 65 66 74 | 20 2d 20 28 6d 79 64 73 |ect.left| - (myds|
|000019e0| 74 52 65 63 74 2e 72 69 | 67 68 74 2d 6d 79 64 73 |tRect.ri|ght-myds|
|000019f0| 74 52 65 63 74 2e 6c 65 | 66 74 29 3b 0d 09 09 69 |tRect.le|ft);...i|
|00001a00| 66 28 69 3e 30 29 49 6e | 73 65 74 52 65 63 74 28 |f(i>0)In|setRect(|
|00001a10| 26 6d 79 73 72 63 52 65 | 63 74 2c 69 2f 32 2c 30 |&mysrcRe|ct,i/2,0|
|00001a20| 29 3b 0d 09 09 69 66 28 | 69 3c 30 29 49 6e 73 65 |);...if(|i<0)Inse|
|00001a30| 74 52 65 63 74 28 26 6d | 79 64 73 74 52 65 63 74 |tRect(&m|ydstRect|
|00001a40| 2c 2d 69 2f 32 2c 30 29 | 3b 0d 09 09 69 3d 6d 79 |,-i/2,0)|;...i=my|
|00001a50| 73 72 63 52 65 63 74 2e | 62 6f 74 74 6f 6d 2d 6d |srcRect.|bottom-m|
|00001a60| 79 73 72 63 52 65 63 74 | 2e 74 6f 70 20 2d 20 28 |ysrcRect|.top - (|
|00001a70| 64 69 6d 2b 6d 79 64 73 | 74 52 65 63 74 2e 62 6f |dim+myds|tRect.bo|
|00001a80| 74 74 6f 6d 2d 6d 79 64 | 73 74 52 65 63 74 2e 74 |ttom-myd|stRect.t|
|00001a90| 6f 70 29 3b 0d 09 09 69 | 66 28 69 3e 30 29 49 6e |op);...i|f(i>0)In|
|00001aa0| 73 65 74 52 65 63 74 28 | 26 6d 79 73 72 63 52 65 |setRect(|&mysrcRe|
|00001ab0| 63 74 2c 30 2c 69 2f 32 | 29 3b 0d 09 7d 0d 09 73 |ct,0,i/2|);..}..s|
|00001ac0| 72 63 52 65 63 74 50 74 | 72 20 3d 20 26 6d 79 73 |rcRectPt|r = &mys|
|00001ad0| 72 63 52 65 63 74 3b 0d | 09 64 73 74 52 65 63 74 |rcRect;.|.dstRect|
|00001ae0| 50 74 72 20 3d 20 26 6d | 79 64 73 74 52 65 63 74 |Ptr = &m|ydstRect|
|00001af0| 3b 0d 0d 09 69 66 28 63 | 6f 6e 76 6f 6c 76 65 58 |;...if(c|onvolveX|
|00001b00| 29 7b 0d 09 09 64 73 74 | 4c 69 6e 65 73 20 3d 20 |){...dst|Lines = |
|00001b10| 64 73 74 52 65 63 74 50 | 74 72 2d 3e 62 6f 74 74 |dstRectP|tr->bott|
|00001b20| 6f 6d 2d 64 73 74 52 65 | 63 74 50 74 72 2d 3e 74 |om-dstRe|ctPtr->t|
|00001b30| 6f 70 3b 0d 09 09 73 72 | 63 4c 69 6e 65 73 20 3d |op;...sr|cLines =|
|00001b40| 20 73 72 63 52 65 63 74 | 50 74 72 2d 3e 62 6f 74 | srcRect|Ptr->bot|
|00001b50| 74 6f 6d 2d 73 72 63 52 | 65 63 74 50 74 72 2d 3e |tom-srcR|ectPtr->|
|00001b60| 74 6f 70 3b 0d 09 09 64 | 73 74 4c 65 6e 67 74 68 |top;...d|stLength|
|00001b70| 20 3d 20 64 73 74 52 65 | 63 74 50 74 72 2d 3e 72 | = dstRe|ctPtr->r|
|00001b80| 69 67 68 74 2d 64 73 74 | 52 65 63 74 50 74 72 2d |ight-dst|RectPtr-|
|00001b90| 3e 6c 65 66 74 3b 0d 09 | 09 73 72 63 4c 65 6e 67 |>left;..|.srcLeng|
|00001ba0| 74 68 20 3d 20 73 72 63 | 52 65 63 74 50 74 72 2d |th = src|RectPtr-|
|00001bb0| 3e 72 69 67 68 74 2d 73 | 72 63 52 65 63 74 50 74 |>right-s|rcRectPt|
|00001bc0| 72 2d 3e 6c 65 66 74 3b | 0d 09 7d 65 6c 73 65 7b |r->left;|..}else{|
|00001bd0| 0d 09 09 64 73 74 4c 65 | 6e 67 74 68 20 3d 20 64 |...dstLe|ngth = d|
|00001be0| 73 74 52 65 63 74 50 74 | 72 2d 3e 62 6f 74 74 6f |stRectPt|r->botto|
|00001bf0| 6d 2d 64 73 74 52 65 63 | 74 50 74 72 2d 3e 74 6f |m-dstRec|tPtr->to|
|00001c00| 70 3b 0d 09 09 73 72 63 | 4c 65 6e 67 74 68 20 3d |p;...src|Length =|
|00001c10| 20 73 72 63 52 65 63 74 | 50 74 72 2d 3e 62 6f 74 | srcRect|Ptr->bot|
|00001c20| 74 6f 6d 2d 73 72 63 52 | 65 63 74 50 74 72 2d 3e |tom-srcR|ectPtr->|
|00001c30| 74 6f 70 3b 0d 09 09 64 | 73 74 4c 69 6e 65 73 20 |top;...d|stLines |
|00001c40| 3d 20 64 73 74 52 65 63 | 74 50 74 72 2d 3e 72 69 |= dstRec|tPtr->ri|
|00001c50| 67 68 74 2d 64 73 74 52 | 65 63 74 50 74 72 2d 3e |ght-dstR|ectPtr->|
|00001c60| 6c 65 66 74 3b 0d 09 09 | 73 72 63 4c 69 6e 65 73 |left;...|srcLines|
|00001c70| 20 3d 20 73 72 63 52 65 | 63 74 50 74 72 2d 3e 72 | = srcRe|ctPtr->r|
|00001c80| 69 67 68 74 2d 73 72 63 | 52 65 63 74 50 74 72 2d |ight-src|RectPtr-|
|00001c90| 3e 6c 65 66 74 3b 0d 09 | 7d 0d 09 69 66 28 64 73 |>left;..|}..if(ds|
|00001ca0| 74 4c 69 6e 65 73 20 3e | 20 73 72 63 4c 69 6e 65 |tLines >| srcLine|
|00001cb0| 73 29 20 6c 69 6e 65 73 | 20 3d 20 73 72 63 4c 69 |s) lines| = srcLi|
|00001cc0| 6e 65 73 3b 20 0d 09 65 | 6c 73 65 20 6c 69 6e 65 |nes; ..e|lse line|
|00001cd0| 73 20 3d 20 64 73 74 4c | 69 6e 65 73 3b 0d 09 0d |s = dstL|ines;...|
|00001ce0| 09 2f 2a 20 41 6c 6c 6f | 63 61 74 65 20 6f 75 72 |./* Allo|cate our|
|00001cf0| 20 6c 69 6e 65 20 62 75 | 66 66 65 72 73 2e 20 2a | line bu|ffers. *|
|00001d00| 2f 0d 09 73 72 63 54 6d | 70 20 3d 20 2a 2a 28 2a |/..srcTm|p = **(*|
|00001d10| 47 65 74 47 44 65 76 69 | 63 65 28 29 29 2d 3e 67 |GetGDevi|ce())->g|
|00001d20| 64 50 4d 61 70 3b 09 2f | 2a 20 55 73 65 20 63 75 |dPMap;./|* Use cu|
|00001d30| 72 72 65 6e 74 20 64 65 | 76 69 63 65 20 74 6f 20 |rrent de|vice to |
|00001d40| 69 6e 69 74 20 50 69 78 | 4d 61 70 20 66 69 65 6c |init Pix|Map fiel|
|00001d50| 64 73 20 2a 2f 0d 09 73 | 72 63 54 6d 70 2e 70 6d |ds */..s|rcTmp.pm|
|00001d60| 56 65 72 73 69 6f 6e 3d | 73 72 63 54 6d 70 2e 70 |Version=|srcTmp.p|
|00001d70| 61 63 6b 54 79 70 65 3d | 73 72 63 54 6d 70 2e 70 |ackType=|srcTmp.p|
|00001d80| 61 63 6b 53 69 7a 65 3d | 30 3b 0d 09 73 72 63 54 |ackSize=|0;..srcT|
|00001d90| 6d 70 2e 70 6c 61 6e 65 | 42 79 74 65 73 3d 73 72 |mp.plane|Bytes=sr|
|00001da0| 63 54 6d 70 2e 70 6d 52 | 65 73 65 72 76 65 64 3d |cTmp.pmR|eserved=|
|00001db0| 30 3b 0d 09 73 72 63 54 | 6d 70 2e 63 6d 70 43 6f |0;..srcT|mp.cmpCo|
|00001dc0| 75 6e 74 3d 31 3b 0d 09 | 73 72 63 54 6d 70 2e 70 |unt=1;..|srcTmp.p|
|00001dd0| 69 78 65 6c 53 69 7a 65 | 3d 38 3b 09 09 09 09 09 |ixelSize|=8;.....|
|00001de0| 2f 2a 20 54 68 65 20 6d | 61 69 6e 20 6c 6f 6f 70 |/* The m|ain loop|
|00001df0| 20 61 73 73 75 6d 65 73 | 20 38 20 62 69 74 73 20 | assumes| 8 bits |
|00001e00| 70 65 72 20 70 69 78 65 | 6c 20 2a 2f 0d 09 69 66 |per pixe|l */..if|
|00001e10| 28 63 6f 6e 76 6f 6c 76 | 65 58 29 7b 0d 09 09 53 |(convolv|eX){...S|
|00001e20| 65 74 52 65 63 74 28 26 | 73 72 63 54 6d 70 2e 62 |etRect(&|srcTmp.b|
|00001e30| 6f 75 6e 64 73 2c 30 2c | 30 2c 73 72 63 4c 65 6e |ounds,0,|0,srcLen|
|00001e40| 67 74 68 2c 31 29 3b 09 | 2f 2a 20 61 20 68 6f 72 |gth,1);.|/* a hor|
|00001e50| 69 7a 6f 6e 74 61 6c 20 | 6c 69 6e 65 20 62 75 66 |izontal |line buf|
|00001e60| 66 65 72 20 2a 2f 0d 09 | 7d 65 6c 73 65 7b 0d 09 |fer */..|}else{..|
|00001e70| 09 53 65 74 52 65 63 74 | 28 26 73 72 63 54 6d 70 |.SetRect|(&srcTmp|
|00001e80| 2e 62 6f 75 6e 64 73 2c | 30 2c 30 2c 31 2c 73 72 |.bounds,|0,0,1,sr|
|00001e90| 63 4c 65 6e 67 74 68 29 | 3b 09 2f 2a 20 61 20 76 |cLength)|;./* a v|
|00001ea0| 65 72 74 69 63 61 6c 20 | 6c 69 6e 65 20 62 75 66 |ertical |line buf|
|00001eb0| 66 65 72 20 2a 2f 0d 09 | 7d 0d 09 73 72 63 54 6d |fer */..|}..srcTm|
|00001ec0| 70 2e 72 6f 77 42 79 74 | 65 73 20 3d 20 32 2a 28 |p.rowByt|es = 2*(|
|00001ed0| 28 28 73 72 63 54 6d 70 | 2e 62 6f 75 6e 64 73 2e |((srcTmp|.bounds.|
|00001ee0| 72 69 67 68 74 2d 73 72 | 63 54 6d 70 2e 62 6f 75 |right-sr|cTmp.bou|
|00001ef0| 6e 64 73 2e 6c 65 66 74 | 29 2a 73 72 63 54 6d 70 |nds.left|)*srcTmp|
|00001f00| 2e 70 69 78 65 6c 53 69 | 7a 65 2b 31 35 29 2f 31 |.pixelSi|ze+15)/1|
|00001f10| 36 29 3b 0d 09 73 72 63 | 54 6d 70 2e 62 61 73 65 |6);..src|Tmp.base|
|00001f20| 41 64 64 72 20 3d 20 28 | 50 74 72 29 20 6d 61 6c |Addr = (|Ptr) mal|
|00001f30| 6c 6f 63 28 73 72 63 54 | 6d 70 2e 72 6f 77 42 79 |loc(srcT|mp.rowBy|
|00001f40| 74 65 73 2a 28 73 72 63 | 54 6d 70 2e 62 6f 75 6e |tes*(src|Tmp.boun|
|00001f50| 64 73 2e 62 6f 74 74 6f | 6d 2d 73 72 63 54 6d 70 |ds.botto|m-srcTmp|
|00001f60| 2e 62 6f 75 6e 64 73 2e | 74 6f 70 29 29 3b 0d 09 |.bounds.|top));..|
|00001f70| 73 72 63 54 6d 70 2e 72 | 6f 77 42 79 74 65 73 20 |srcTmp.r|owBytes |
|00001f80| 7c 3d 20 30 78 38 30 30 | 30 3b 09 2f 2a 20 4d 61 ||= 0x800|0;./* Ma|
|00001f90| 72 6b 20 69 74 20 61 73 | 20 61 20 50 69 78 4d 61 |rk it as| a PixMa|
|00001fa0| 70 2c 20 6e 6f 74 20 61 | 20 42 69 74 4d 61 70 20 |p, not a| BitMap |
|00001fb0| 2a 2f 0d 09 64 73 74 54 | 6d 70 20 3d 20 73 72 63 |*/..dstT|mp = src|
|00001fc0| 54 6d 70 3b 0d 09 69 66 | 28 63 6f 6e 76 6f 6c 76 |Tmp;..if|(convolv|
|00001fd0| 65 58 29 7b 0d 09 09 53 | 65 74 52 65 63 74 28 26 |eX){...S|etRect(&|
|00001fe0| 64 73 74 54 6d 70 2e 62 | 6f 75 6e 64 73 2c 30 2c |dstTmp.b|ounds,0,|
|00001ff0| 30 2c 64 73 74 4c 65 6e | 67 74 68 2c 31 29 3b 09 |0,dstLen|gth,1);.|
|00002000| 2f 2a 20 61 20 68 6f 72 | 69 7a 6f 6e 74 61 6c 20 |/* a hor|izontal |
|00002010| 6c 69 6e 65 20 62 75 66 | 66 65 72 20 2a 2f 0d 09 |line buf|fer */..|
|00002020| 7d 65 6c 73 65 7b 0d 09 | 09 53 65 74 52 65 63 74 |}else{..|.SetRect|
|00002030| 28 26 64 73 74 54 6d 70 | 2e 62 6f 75 6e 64 73 2c |(&dstTmp|.bounds,|
|00002040| 30 2c 30 2c 31 2c 64 73 | 74 4c 65 6e 67 74 68 29 |0,0,1,ds|tLength)|
|00002050| 3b 09 2f 2a 20 61 20 76 | 65 72 74 69 63 61 6c 20 |;./* a v|ertical |
|00002060| 6c 69 6e 65 20 62 75 66 | 66 65 72 20 2a 2f 0d 09 |line buf|fer */..|
|00002070| 7d 0d 09 64 73 74 54 6d | 70 2e 72 6f 77 42 79 74 |}..dstTm|p.rowByt|
|00002080| 65 73 20 3d 20 32 2a 28 | 28 28 64 73 74 54 6d 70 |es = 2*(|((dstTmp|
|00002090| 2e 62 6f 75 6e 64 73 2e | 72 69 67 68 74 2d 64 73 |.bounds.|right-ds|
|000020a0| 74 54 6d 70 2e 62 6f 75 | 6e 64 73 2e 6c 65 66 74 |tTmp.bou|nds.left|
|000020b0| 29 2a 64 73 74 54 6d 70 | 2e 70 69 78 65 6c 53 69 |)*dstTmp|.pixelSi|
|000020c0| 7a 65 2b 31 35 29 2f 31 | 36 29 3b 0d 09 64 73 74 |ze+15)/1|6);..dst|
|000020d0| 54 6d 70 2e 62 61 73 65 | 41 64 64 72 20 3d 20 28 |Tmp.base|Addr = (|
|000020e0| 50 74 72 29 20 6d 61 6c | 6c 6f 63 28 64 73 74 54 |Ptr) mal|loc(dstT|
|000020f0| 6d 70 2e 72 6f 77 42 79 | 74 65 73 2a 28 64 73 74 |mp.rowBy|tes*(dst|
|00002100| 54 6d 70 2e 62 6f 75 6e | 64 73 2e 62 6f 74 74 6f |Tmp.boun|ds.botto|
|00002110| 6d 2d 64 73 74 54 6d 70 | 2e 62 6f 75 6e 64 73 2e |m-dstTmp|.bounds.|
|00002120| 74 6f 70 29 29 3b 0d 09 | 64 73 74 54 6d 70 2e 72 |top));..|dstTmp.r|
|00002130| 6f 77 42 79 74 65 73 20 | 7c 3d 20 30 78 38 30 30 |owBytes ||= 0x800|
|00002140| 30 3b 09 2f 2a 20 4d 61 | 72 6b 20 69 74 20 61 73 |0;./* Ma|rk it as|
|00002150| 20 61 20 50 69 78 4d 61 | 70 2c 20 6e 6f 74 20 61 | a PixMa|p, not a|
|00002160| 20 42 69 74 4d 61 70 20 | 2a 2f 0d 09 69 66 28 73 | BitMap |*/..if(s|
|00002170| 72 63 54 6d 70 2e 62 61 | 73 65 41 64 64 72 20 3d |rcTmp.ba|seAddr =|
|00002180| 3d 20 4e 55 4c 4c 20 7c | 7c 20 64 73 74 54 6d 70 |= NULL ||| dstTmp|
|00002190| 2e 62 61 73 65 41 64 64 | 72 20 3d 3d 20 4e 55 4c |.baseAdd|r == NUL|
|000021a0| 4c 29 0d 09 09 50 72 69 | 6e 74 66 45 78 69 74 28 |L)...Pri|ntfExit(|
|000021b0| 22 43 6f 6e 76 6f 6c 76 | 65 58 2f 59 3a 20 53 6f |"Convolv|eX/Y: So|
|000021c0| 72 72 79 2c 20 63 6f 75 | 6c 64 6e 27 74 20 61 6c |rry, cou|ldn't al|
|000021d0| 6c 6f 63 61 74 65 20 65 | 6e 6f 75 67 68 20 6d 65 |locate e|nough me|
|000021e0| 6d 6f 72 79 20 66 6f 72 | 20 77 6f 72 6b 69 6e 67 |mory for| working|
|000021f0| 20 61 72 72 61 79 73 5c | 30 30 37 5c 6e 22 29 3b | arrays\|007\n");|
|00002200| 0d 09 0d 09 2f 2a 20 44 | 65 66 69 6e 65 20 74 68 |..../* D|efine th|
|00002210| 65 20 72 65 63 74 61 6e | 67 6c 65 73 20 74 68 61 |e rectan|gles tha|
|00002220| 74 20 6d 61 70 20 73 72 | 63 20 61 6e 64 20 64 73 |t map sr|c and ds|
|00002230| 74 20 74 6f 20 74 68 65 | 69 72 20 72 65 73 70 65 |t to the|ir respe|
|00002240| 63 74 69 76 65 20 6c 69 | 6e 65 20 62 75 66 66 65 |ctive li|ne buffe|
|00002250| 72 73 20 2a 2f 0d 09 73 | 72 63 52 65 63 74 20 3d |rs */..s|rcRect =|
|00002260| 20 73 72 63 54 6d 70 2e | 62 6f 75 6e 64 73 3b 0d | srcTmp.|bounds;.|
|00002270| 09 4f 66 66 73 65 74 52 | 65 63 74 28 26 73 72 63 |.OffsetR|ect(&src|
|00002280| 52 65 63 74 2c 73 72 63 | 52 65 63 74 50 74 72 2d |Rect,src|RectPtr-|
|00002290| 3e 6c 65 66 74 2c 73 72 | 63 52 65 63 74 50 74 72 |>left,sr|cRectPtr|
|000022a0| 2d 3e 74 6f 70 29 3b 0d | 09 64 73 74 52 65 63 74 |->top);.|.dstRect|
|000022b0| 20 3d 20 64 73 74 54 6d | 70 2e 62 6f 75 6e 64 73 | = dstTm|p.bounds|
|000022c0| 3b 0d 09 4f 66 66 73 65 | 74 52 65 63 74 28 26 64 |;..Offse|tRect(&d|
|000022d0| 73 74 52 65 63 74 2c 64 | 73 74 52 65 63 74 50 74 |stRect,d|stRectPt|
|000022e0| 72 2d 3e 6c 65 66 74 2c | 64 73 74 52 65 63 74 50 |r->left,|dstRectP|
|000022f0| 74 72 2d 3e 74 6f 70 29 | 3b 0d 09 69 66 28 63 6f |tr->top)|;..if(co|
|00002300| 6e 76 6f 6c 76 65 58 29 | 7b 0d 09 09 4f 66 66 73 |nvolveX)|{...Offs|
|00002310| 65 74 52 65 63 74 28 26 | 73 72 63 52 65 63 74 2c |etRect(&|srcRect,|
|00002320| 30 2c 73 72 63 4c 69 6e | 65 73 2f 32 2d 6c 69 6e |0,srcLin|es/2-lin|
|00002330| 65 73 2f 32 29 3b 0d 09 | 09 4f 66 66 73 65 74 52 |es/2);..|.OffsetR|
|00002340| 65 63 74 28 26 64 73 74 | 52 65 63 74 2c 30 2c 64 |ect(&dst|Rect,0,d|
|00002350| 73 74 4c 69 6e 65 73 2f | 32 2d 6c 69 6e 65 73 2f |stLines/|2-lines/|
|00002360| 32 29 3b 0d 09 7d 65 6c | 73 65 7b 0d 09 09 4f 66 |2);..}el|se{...Of|
|00002370| 66 73 65 74 52 65 63 74 | 28 26 73 72 63 52 65 63 |fsetRect|(&srcRec|
|00002380| 74 2c 73 72 63 4c 69 6e | 65 73 2f 32 2d 6c 69 6e |t,srcLin|es/2-lin|
|00002390| 65 73 2f 32 2c 30 29 3b | 0d 09 09 4f 66 66 73 65 |es/2,0);|...Offse|
|000023a0| 74 52 65 63 74 28 26 64 | 73 74 52 65 63 74 2c 64 |tRect(&d|stRect,d|
|000023b0| 73 74 4c 69 6e 65 73 2f | 32 2d 6c 69 6e 65 73 2f |stLines/|2-lines/|
|000023c0| 32 2c 30 29 3b 0d 09 7d | 0d 09 0d 09 2f 2a 20 43 |2,0);..}|..../* C|
|000023d0| 6f 6e 76 6f 6c 76 65 20 | 6f 6e 65 20 6c 69 6e 65 |onvolve |one line|
|000023e0| 20 70 65 72 20 69 74 65 | 72 61 74 69 6f 6e 20 2a | per ite|ration *|
|000023f0| 2f 0d 09 2f 2a 20 79 20 | 69 6e 64 69 63 61 74 65 |/../* y |indicate|
|00002400| 73 20 77 68 69 63 68 20 | 6c 69 6e 65 2c 20 78 20 |s which |line, x |
|00002410| 69 6e 64 69 63 61 74 65 | 73 20 77 68 69 63 68 20 |indicate|s which |
|00002420| 70 69 78 65 6c 20 61 6c | 6f 6e 67 20 74 68 61 74 |pixel al|ong that|
|00002430| 20 6c 69 6e 65 20 2a 2f | 0d 09 66 6f 72 20 28 79 | line */|..for (y|
|00002440| 3d 20 2d 6c 69 6e 65 73 | 2f 32 3b 20 79 3c 28 6c |= -lines|/2; y<(l|
|00002450| 69 6e 65 73 2b 31 29 2f | 32 3b 20 79 2b 2b 29 20 |ines+1)/|2; y++) |
|00002460| 7b 0d 09 09 2f 2a 20 66 | 69 72 73 74 20 63 6f 70 |{.../* f|irst cop|
|00002470| 79 20 61 20 6c 69 6e 65 | 20 66 72 6f 6d 20 73 72 |y a line| from sr|
|00002480| 63 42 69 74 73 20 69 6e | 74 6f 20 6c 69 6e 65 2d |cBits in|to line-|
|00002490| 62 75 66 66 65 72 20 73 | 72 63 54 6d 70 20 2a 2f |buffer s|rcTmp */|
|000024a0| 0d 09 09 69 66 28 73 72 | 63 50 69 78 65 6c 53 69 |...if(sr|cPixelSi|
|000024b0| 7a 65 20 3d 3d 20 73 72 | 63 54 6d 70 2e 70 69 78 |ze == sr|cTmp.pix|
|000024c0| 65 6c 53 69 7a 65 29 0d | 09 09 09 43 6f 70 79 42 |elSize).|...CopyB|
|000024d0| 69 74 73 51 75 69 63 6b | 6c 79 28 73 72 63 42 69 |itsQuick|ly(srcBi|
|000024e0| 74 73 2c 28 42 69 74 4d | 61 70 20 2a 29 20 26 73 |ts,(BitM|ap *) &s|
|000024f0| 72 63 54 6d 70 2c 26 73 | 72 63 52 65 63 74 2c 26 |rcTmp,&s|rcRect,&|
|00002500| 73 72 63 54 6d 70 2e 62 | 6f 75 6e 64 73 2c 73 72 |srcTmp.b|ounds,sr|
|00002510| 63 43 6f 70 79 2c 4e 55 | 4c 4c 29 3b 0d 09 09 65 |cCopy,NU|LL);...e|
|00002520| 6c 73 65 0d 09 09 09 43 | 6f 70 79 42 69 74 73 28 |lse....C|opyBits(|
|00002530| 73 72 63 42 69 74 73 2c | 28 42 69 74 4d 61 70 20 |srcBits,|(BitMap |
|00002540| 2a 29 20 26 73 72 63 54 | 6d 70 2c 26 73 72 63 52 |*) &srcT|mp,&srcR|
|00002550| 65 63 74 2c 26 73 72 63 | 54 6d 70 2e 62 6f 75 6e |ect,&src|Tmp.boun|
|00002560| 64 73 2c 73 72 63 43 6f | 70 79 2c 4e 55 4c 4c 29 |ds,srcCo|py,NULL)|
|00002570| 3b 0d 09 09 69 66 28 63 | 61 6e 33 32 29 53 77 61 |;...if(c|an32)Swa|
|00002580| 70 4d 4d 55 4d 6f 64 65 | 28 26 6d 6d 75 4d 6f 64 |pMMUMode|(&mmuMod|
|00002590| 65 29 3b 0d 09 09 69 66 | 28 21 63 6f 6e 76 6f 6c |e);...if|(!convol|
|000025a0| 76 65 58 29 7b 0d 09 09 | 09 2f 2a 20 55 6e 66 6f |veX){...|./* Unfo|
|000025b0| 72 74 75 6e 61 74 65 6c | 79 20 74 68 65 20 6d 69 |rtunatel|y the mi|
|000025c0| 6e 69 6d 75 6d 20 50 69 | 78 4d 61 70 20 72 6f 77 |nimum Pi|xMap row|
|000025d0| 42 79 74 65 73 20 69 73 | 20 32 20 62 79 74 65 73 |Bytes is| 2 bytes|
|000025e0| 2c 20 73 6f 20 77 65 0d | 09 09 09 73 71 75 65 65 |, so we.|...squee|
|000025f0| 7a 65 20 6f 75 74 20 74 | 68 65 20 65 78 74 72 61 |ze out t|he extra|
|00002600| 20 73 70 61 63 65 20 62 | 65 66 6f 72 65 20 70 72 | space b|efore pr|
|00002610| 6f 63 65 73 73 69 6e 67 | 0d 09 09 09 2a 2f 0d 09 |ocessing|....*/..|
|00002620| 09 09 73 72 63 50 74 72 | 3d 20 28 75 6e 73 69 67 |..srcPtr|= (unsig|
|00002630| 6e 65 64 20 63 68 61 72 | 20 2a 29 20 73 72 63 54 |ned char| *) srcT|
|00002640| 6d 70 2e 62 61 73 65 41 | 64 64 72 3b 0d 09 09 09 |mp.baseA|ddr;....|
|00002650| 64 73 74 50 74 72 3d 20 | 28 75 6e 73 69 67 6e 65 |dstPtr= |(unsigne|
|00002660| 64 20 63 68 61 72 20 2a | 29 20 73 72 63 54 6d 70 |d char *|) srcTmp|
|00002670| 2e 62 61 73 65 41 64 64 | 72 3b 0d 09 09 09 66 6f |.baseAdd|r;....fo|
|00002680| 72 20 28 78 3d 30 3b 20 | 78 3c 73 72 63 4c 65 6e |r (x=0; |x<srcLen|
|00002690| 67 74 68 3b 20 78 2b 2b | 29 20 7b 0d 09 09 09 09 |gth; x++|) {.....|
|000026a0| 2a 64 73 74 50 74 72 2b | 2b 20 3d 20 2a 73 72 63 |*dstPtr+|+ = *src|
|000026b0| 50 74 72 3b 0d 09 09 09 | 09 73 72 63 50 74 72 20 |Ptr;....|.srcPtr |
|000026c0| 2b 3d 20 32 3b 0d 09 09 | 09 7d 0d 09 09 7d 0d 09 |+= 2;...|.}...}..|
|000026d0| 09 64 73 74 50 74 72 3d | 20 28 75 6e 73 69 67 6e |.dstPtr=| (unsign|
|000026e0| 65 64 20 63 68 61 72 20 | 2a 29 20 64 73 74 54 6d |ed char |*) dstTm|
|000026f0| 70 2e 62 61 73 65 41 64 | 64 72 3b 0d 09 09 73 72 |p.baseAd|dr;...sr|
|00002700| 63 78 20 3d 20 73 72 63 | 4c 65 6e 67 74 68 2f 32 |cx = src|Length/2|
|00002710| 20 2d 20 64 69 6d 2f 32 | 20 2d 20 64 73 74 4c 65 | - dim/2| - dstLe|
|00002720| 6e 67 74 68 2f 32 3b 0d | 09 09 66 6f 72 20 28 78 |ngth/2;.|..for (x|
|00002730| 3d 30 3b 20 78 3c 64 73 | 74 4c 65 6e 67 74 68 3b |=0; x<ds|tLength;|
|00002740| 20 78 2b 2b 29 20 7b 0d | 09 09 09 69 6d 61 78 3d | x++) {.|...imax=|
|00002750| 64 69 6d 3b 0d 09 09 09 | 69 66 28 73 72 63 78 2b |dim;....|if(srcx+|
|00002760| 64 69 6d 3e 73 72 63 4c | 65 6e 67 74 68 29 20 69 |dim>srcL|ength) i|
|00002770| 6d 61 78 3d 73 72 63 4c | 65 6e 67 74 68 2d 73 72 |max=srcL|ength-sr|
|00002780| 63 78 3b 0d 09 09 09 69 | 66 28 73 72 63 78 3c 30 |cx;....i|f(srcx<0|
|00002790| 29 7b 0d 09 09 09 09 69 | 6d 69 6e 3d 20 2d 73 72 |){.....i|min= -sr|
|000027a0| 63 78 3b 0d 09 09 09 09 | 73 72 63 50 74 72 3d 28 |cx;.....|srcPtr=(|
|000027b0| 75 6e 73 69 67 6e 65 64 | 20 63 68 61 72 20 2a 29 |unsigned| char *)|
|000027c0| 20 73 72 63 54 6d 70 2e | 62 61 73 65 41 64 64 72 | srcTmp.|baseAddr|
|000027d0| 3b 0d 09 09 09 7d 0d 09 | 09 09 65 6c 73 65 20 7b |;....}..|..else {|
|000027e0| 0d 09 09 09 09 69 6d 69 | 6e 3d 30 3b 0d 09 09 09 |.....imi|n=0;....|
|000027f0| 09 73 72 63 50 74 72 3d | 28 75 6e 73 69 67 6e 65 |.srcPtr=|(unsigne|
|00002800| 64 20 63 68 61 72 20 2a | 29 20 73 72 63 54 6d 70 |d char *|) srcTmp|
|00002810| 2e 62 61 73 65 41 64 64 | 72 2b 73 72 63 78 3b 0d |.baseAdd|r+srcx;.|
|00002820| 09 09 09 7d 0d 09 09 09 | 66 50 74 72 3d 26 69 66 |...}....|fPtr=&if|
|00002830| 75 6e 5b 69 6d 69 6e 5d | 3b 0d 09 09 09 66 6f 72 |un[imin]|;....for|
|00002840| 20 28 74 3d 30 4c 2c 20 | 69 3d 69 6d 69 6e 3b 69 | (t=0L, |i=imin;i|
|00002850| 3c 69 6d 61 78 3b 69 2b | 2b 29 20 74 20 2b 3d 20 |<imax;i+|+) t += |
|00002860| 2a 66 50 74 72 2b 2b 20 | 2a 20 28 6c 6f 6e 67 29 |*fPtr++ |* (long)|
|00002870| 28 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 29 20 |(unsigne|d long) |
|00002880| 2a 73 72 63 50 74 72 2b | 2b 3b 0d 23 69 66 20 49 |*srcPtr+|+;.#if I|
|00002890| 4d 50 52 4f 56 45 44 5f | 52 4f 55 4e 44 49 4e 47 |MPROVED_|ROUNDING|
|000028a0| 0d 09 09 09 69 66 28 74 | 3e 30 29 74 2b 3d 69 66 |....if(t|>0)t+=if|
|000028b0| 75 6e 53 63 61 6c 65 3e | 3e 31 3b 09 09 2f 2f 20 |unScale>|>1;..// |
|000028c0| 72 6f 75 6e 64 20 74 2f | 69 66 75 6e 53 63 61 6c |round t/|ifunScal|
|000028d0| 65 20 74 6f 20 6e 65 61 | 72 65 73 74 20 69 6e 74 |e to nea|rest int|
|000028e0| 65 67 65 72 0d 09 09 09 | 65 6c 73 65 20 74 2d 3d |eger....|else t-=|
|000028f0| 69 66 75 6e 53 63 61 6c | 65 3e 3e 31 3b 0d 23 65 |ifunScal|e>>1;.#e|
|00002900| 6e 64 69 66 0d 09 09 09 | 74 2f 3d 69 66 75 6e 53 |ndif....|t/=ifunS|
|00002910| 63 61 6c 65 3b 0d 09 09 | 09 69 66 28 63 6f 6e 76 |cale;...|.if(conv|
|00002920| 6f 6c 76 65 58 29 7b 0d | 09 09 09 09 2a 64 73 74 |olveX){.|....*dst|
|00002930| 50 74 72 2b 2b 20 3d 20 | 28 75 6e 73 69 67 6e 65 |Ptr++ = |(unsigne|
|00002940| 64 20 63 68 61 72 29 20 | 74 3b 0d 09 09 09 7d 65 |d char) |t;....}e|
|00002950| 6c 73 65 7b 0d 09 09 09 | 09 2f 2a 20 55 6e 66 6f |lse{....|./* Unfo|
|00002960| 72 74 75 6e 61 74 65 6c | 79 20 74 68 65 20 6d 69 |rtunatel|y the mi|
|00002970| 6e 69 6d 75 6d 20 50 69 | 78 4d 61 70 20 72 6f 77 |nimum Pi|xMap row|
|00002980| 42 79 74 65 73 20 69 73 | 20 32 20 62 79 74 65 73 |Bytes is| 2 bytes|
|00002990| 2c 20 73 6f 20 77 65 0d | 09 09 09 09 69 6e 73 65 |, so we.|....inse|
|000029a0| 72 74 20 61 20 73 70 61 | 63 65 20 62 65 74 77 65 |rt a spa|ce betwe|
|000029b0| 65 6e 20 70 69 78 65 6c | 73 0d 09 09 09 09 2a 2f |en pixel|s.....*/|
|000029c0| 0d 09 09 09 09 2a 64 73 | 74 50 74 72 20 3d 20 28 |.....*ds|tPtr = (|
|000029d0| 75 6e 73 69 67 6e 65 64 | 20 63 68 61 72 29 20 74 |unsigned| char) t|
|000029e0| 3b 0d 09 09 09 09 64 73 | 74 50 74 72 20 2b 3d 20 |;.....ds|tPtr += |
|000029f0| 32 3b 0d 09 09 09 7d 0d | 09 09 09 73 72 63 78 2b |2;....}.|...srcx+|
|00002a00| 2b 3b 0d 09 09 7d 0d 09 | 09 69 66 28 63 61 6e 33 |+;...}..|.if(can3|
|00002a10| 32 29 53 77 61 70 4d 4d | 55 4d 6f 64 65 28 26 6d |2)SwapMM|UMode(&m|
|00002a20| 6d 75 4d 6f 64 65 29 3b | 0d 09 09 2f 2a 20 66 69 |muMode);|.../* fi|
|00002a30| 6e 61 6c 6c 79 2c 20 63 | 6f 70 79 20 74 68 65 20 |nally, c|opy the |
|00002a40| 6c 69 6e 65 20 66 72 6f | 6d 20 62 75 66 66 65 72 |line fro|m buffer|
|00002a50| 20 64 73 74 54 6d 70 20 | 74 6f 20 64 73 74 42 69 | dstTmp |to dstBi|
|00002a60| 74 73 20 2a 2f 0d 09 09 | 69 66 28 64 73 74 50 69 |ts */...|if(dstPi|
|00002a70| 78 65 6c 53 69 7a 65 20 | 3d 3d 20 64 73 74 54 6d |xelSize |== dstTm|
|00002a80| 70 2e 70 69 78 65 6c 53 | 69 7a 65 29 0d 09 09 09 |p.pixelS|ize)....|
|00002a90| 43 6f 70 79 42 69 74 73 | 51 75 69 63 6b 6c 79 28 |CopyBits|Quickly(|
|00002aa0| 28 42 69 74 4d 61 70 20 | 2a 29 20 26 64 73 74 54 |(BitMap |*) &dstT|
|00002ab0| 6d 70 2c 64 73 74 42 69 | 74 73 2c 26 64 73 74 54 |mp,dstBi|ts,&dstT|
|00002ac0| 6d 70 2e 62 6f 75 6e 64 | 73 2c 26 64 73 74 52 65 |mp.bound|s,&dstRe|
|00002ad0| 63 74 2c 73 72 63 43 6f | 70 79 2c 4e 55 4c 4c 29 |ct,srcCo|py,NULL)|
|00002ae0| 3b 0d 09 09 65 6c 73 65 | 0d 09 09 09 43 6f 70 79 |;...else|....Copy|
|00002af0| 42 69 74 73 28 28 42 69 | 74 4d 61 70 20 2a 29 20 |Bits((Bi|tMap *) |
|00002b00| 26 64 73 74 54 6d 70 2c | 64 73 74 42 69 74 73 2c |&dstTmp,|dstBits,|
|00002b10| 26 64 73 74 54 6d 70 2e | 62 6f 75 6e 64 73 2c 26 |&dstTmp.|bounds,&|
|00002b20| 64 73 74 52 65 63 74 2c | 73 72 63 43 6f 70 79 2c |dstRect,|srcCopy,|
|00002b30| 4e 55 4c 4c 29 3b 0d 09 | 09 69 66 28 63 6f 6e 76 |NULL);..|.if(conv|
|00002b40| 6f 6c 76 65 58 29 7b 0d | 09 09 09 4f 66 66 73 65 |olveX){.|...Offse|
|00002b50| 74 52 65 63 74 28 26 73 | 72 63 52 65 63 74 2c 30 |tRect(&s|rcRect,0|
|00002b60| 2c 31 29 3b 09 2f 2a 20 | 61 64 6a 75 73 74 20 52 |,1);./* |adjust R|
|00002b70| 65 63 74 73 20 74 6f 20 | 70 6f 69 6e 74 20 74 6f |ects to |point to|
|00002b80| 20 6e 65 78 74 20 6c 69 | 6e 65 20 2a 2f 0d 09 09 | next li|ne */...|
|00002b90| 09 4f 66 66 73 65 74 52 | 65 63 74 28 26 64 73 74 |.OffsetR|ect(&dst|
|00002ba0| 52 65 63 74 2c 30 2c 31 | 29 3b 0d 09 09 7d 65 6c |Rect,0,1|);...}el|
|00002bb0| 73 65 7b 0d 09 09 09 4f | 66 66 73 65 74 52 65 63 |se{....O|ffsetRec|
|00002bc0| 74 28 26 73 72 63 52 65 | 63 74 2c 31 2c 30 29 3b |t(&srcRe|ct,1,0);|
|00002bd0| 09 2f 2a 20 61 64 6a 75 | 73 74 20 52 65 63 74 73 |./* adju|st Rects|
|00002be0| 20 74 6f 20 70 6f 69 6e | 74 20 74 6f 20 6e 65 78 | to poin|t to nex|
|00002bf0| 74 20 6c 69 6e 65 20 2a | 2f 0d 09 09 09 4f 66 66 |t line *|/....Off|
|00002c00| 73 65 74 52 65 63 74 28 | 26 64 73 74 52 65 63 74 |setRect(|&dstRect|
|00002c10| 2c 31 2c 30 29 3b 0d 09 | 09 7d 0d 09 7d 0d 09 66 |,1,0);..|.}..}..f|
|00002c20| 72 65 65 28 28 76 6f 69 | 64 20 2a 29 20 69 66 75 |ree((voi|d *) ifu|
|00002c30| 6e 29 3b 0d 09 66 72 65 | 65 28 28 76 6f 69 64 20 |n);..fre|e((void |
|00002c40| 2a 29 20 73 72 63 54 6d | 70 2e 62 61 73 65 41 64 |*) srcTm|p.baseAd|
|00002c50| 64 72 29 3b 0d 09 66 72 | 65 65 28 28 76 6f 69 64 |dr);..fr|ee((void|
|00002c60| 20 2a 29 20 64 73 74 54 | 6d 70 2e 62 61 73 65 41 | *) dstT|mp.baseA|
|00002c70| 64 64 72 29 3b 0d 7d 0d | 0d 09 00 00 00 00 00 00 |ddr);.}.|........|
|00002c80| 00 00 01 00 00 00 03 0a | 00 00 02 0a 00 00 00 6a |........|.......j|
|00002c90| 66 49 3e 3b 27 57 02 06 | 3c 7c 67 47 33 1b 77 53 |fI>;'W..|<|gG3.wS|
|00002ca0| 6f 40 33 52 08 62 6c 4f | 2c 43 3b 02 7f 0e 14 45 |o@3R.blO|,C;....E|
|00002cb0| 0b 43 6f 6e 76 6f 6c 76 | 65 58 2e 63 02 00 00 00 |.Convolv|eX.c....|
|00002cc0| 50 61 72 74 53 49 54 21 | 00 00 00 00 00 00 00 00 |PartSIT!|........|
|00002cd0| 00 00 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |..PartSI|T!......|
|00002ce0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002cf0| 00 00 ab bf ee 59 00 00 | 00 00 00 00 03 74 71 2a |.....Y..|.....tq*|
|00002d00| 6d 6a 70 70 1b 6f 67 30 | 0f 65 5d 7a 69 7f 03 73 |mjpp.og0|.e]zi..s|
|00002d10| 2e 7f 5e 1d 0c 09 3c 2f | 5f 36 23 2a 17 62 2e 2f |..^...</|_6#*.b./|
|00002d20| 3f 2a 73 58 34 23 6e 7d | 5d 39 16 36 67 3d 08 08 |?*sX4#n}|]9.6g=..|
|00002d30| 59 11 72 02 07 01 33 39 | 33 2d 51 74 62 19 33 71 |Y.r...39|3-Qtb.3q|
|00002d40| 43 47 5b 7f 13 6f 69 02 | 6e 36 41 76 04 03 14 11 |CG[..oi.|n6Av....|
|00002d50| 7f 3e 17 2a 2b 33 44 68 | 33 4f 59 78 69 76 7b 3b |.>.*+3Dh|3OYxiv{;|
|00002d60| 7c 35 2b 3f 20 7e 7e 5b | 6a 38 3c 51 7d 52 58 58 ||5+? ~~[|j8<Q}RXX|
|00002d70| 48 29 66 4d 68 58 09 18 | 6e 65 71 68 2d 48 6a 57 |H)fMhX..|neqh-HjW|
|00002d80| 00 00 00 8a 00 04 00 28 | 00 00 17 61 00 8f 00 5b |.......(|...a...[|
|00002d90| e7 c8 80 00 01 6c 00 04 | 01 d3 00 7c 94 20 00 00 |.....l..|...|. ..|
|00002da0| 00 00 00 00 09 6d 79 73 | 72 63 52 65 63 74 00 2a |.....mys|rcRect.*|
|00002db0| 00 00 17 7b 00 8f 00 5b | e7 54 80 00 01 6d 00 78 |...{...[|.T...m.x|
|00002dc0| 01 d4 00 f0 94 20 00 00 | 00 00 00 00 0b 09 6d 79 |..... ..|......my|
|00002dd0| 64 73 74 52 65 63 74 0d | 00 10 00 00 17 a5 00 90 |dstRect.|........|
|00002de0| 00 5b e6 f0 00 00 01 69 | 00 26 00 00 1c 03 00 ad |.[.....i|.&......|
|00002df0| 00 5b e6 d8 80 00 01 5a | 00 12 01 c1 02 42 94 20 |.[.....Z|.....B. |
|00002e00| 00 00 00 00 00 00 07 73 | 72 63 54 6d 70 20 00 00 |.......s|rcTmp ..|
|00002e10| 00 1e 00 29 00 07 01 80 | 02 4a 00 29 00 07 01 80 |...)....|.J.)....|
|00002e20| 02 4a 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.J......|........|
|00002e30| 00 00 00 3a 00 03 00 00 | 0e 75 00 00 0e 7e 09 43 |...:....|.u...~.C|
|00002e40| 6f 6e 76 6f 6c 76 65 58 | 00 00 0f c5 00 00 0f cf |onvolveX|........|
|00002e50| 0b 43 6f 6e 76 6f 6c 76 | 65 58 59 00 00 00 0f 1d |.Convolv|eXY.....|
|00002e60| 00 00 0f 26 09 43 6f 6e | 76 6f 6c 76 65 59 00 00 |...&.Con|volveY..|
|00002e70| 00 48 00 09 4d 6f 6e 61 | 63 6f 00 00 00 00 00 00 |.H..Mona|co......|
|00002e80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e90| 00 00 00 00 00 06 00 04 | 00 2a 00 03 01 8d 02 7d |........|.*.....}|
|00002ea0| 00 35 00 04 01 8c 02 47 | aa ed fd 73 00 00 0c ff |.5.....G|...s....|
|00002eb0| 00 00 0d 0b 00 00 00 00 | 00 00 00 00 00 cc 00 08 |........|........|
|00002ec0| 00 18 00 00 14 b7 00 78 | 00 50 f6 10 00 00 09 55 |.......x|.P.....U|
|00002ed0| 43 48 41 52 5f 4d 41 58 | 00 14 00 00 14 84 00 77 |CHAR_MAX|.......w|
|00002ee0| 00 50 f6 00 00 00 05 74 | 6d 61 78 20 00 18 00 00 |.P.....t|max ....|
|00002ef0| 15 1e 00 7a 00 50 f5 f0 | 10 02 09 69 66 75 6e 53 |...z.P..|...ifunS|
|00002f00| 63 61 6c 65 00 14 00 00 | 15 3a 00 7b 00 50 f5 e0 |cale....|.:.{.P..|
|00002f10| 00 00 05 2a 69 66 75 6e | 00 14 00 00 15 3a 00 7b |...*ifun|.....:.{|
|00002f20| 00 50 f5 c0 00 00 05 69 | 66 75 6e 20 00 1a 00 00 |.P.....i|fun ....|
|00002f30| 15 3a 00 7b 00 50 f5 b0 | 00 00 0b 69 66 75 6e 5b |.:.{.P..|...ifun[|
|00002f40| 64 69 6d 2f 32 5d 00 1c | 00 00 15 3a 00 7b 00 50 |dim/2]..|...:.{.P|
|00002f50| f5 a0 00 00 0d 32 35 35 | 2a 69 66 75 6e 53 63 61 |.....255|*ifunSca|
|00002f60| 6c 65 00 28 00 00 15 3a | 00 7b 00 50 f5 90 00 00 |le.(...:|.{.P....|
|00002f70| 19 32 35 35 2a 69 66 75 | 6e 53 63 61 6c 65 2b 69 |.255*ifu|nScale+i|
|00002f80| 66 75 6e 53 63 61 6c 65 | 2f 32 00 00 01 00 00 00 |funScale|/2......|
|00002f90| 03 0a 00 00 02 0a 00 00 | 00 6a 00 55 98 48 27 aa |........|.j.U.H'.|
|00002fa0| 00 00 00 1c 00 6a 00 01 | 44 54 56 55 00 01 00 12 |.....j..|DTVU....|
|00002fb0| 4d 50 53 52 00 02 00 2a | 78 48 ff ff 00 00 00 00 |MPSR...*|xH......|
|00002fc0| 00 00 00 00 2d 23 ff ff | 00 00 01 3a 00 00 00 00 |....-#..|...:....|
|00002fd0| 03 f0 ff ff 00 00 00 8e | 00 00 00 00 03 ef ff ff |........|........|
|00002fe0| 00 00 00 b0 00 00 00 00 | 03 ed ff ff 00 00 00 ee |........|........|
|00002ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+